aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-08-28 22:58:16 +0100
committerMichael Williamson <mike@zwobble.org>2016-08-28 23:05:43 +0100
commit7456c5d58ca40c039de055f39b5b90fedc834f6b (patch)
tree4c455778a65f74554eeed57cd015f5d5ba0ecfbd
parent6f9603e3f17ad7142edebf83212dfa97d1576ce0 (diff)
Read comment references
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java5
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/CommentReference.java18
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java8
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java9
5 files changed, 40 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
index 75a1b1d..1eb66d3 100644
--- a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
+++ b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
@@ -206,6 +206,11 @@ public class DocumentToHtml {
}
@Override
+ public List<HtmlNode> visit(CommentReference commentReference) {
+ return list();
+ }
+
+ @Override
public List<HtmlNode> visit(Image image) {
// TODO: custom image handlers
// TODO: handle empty content type
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/CommentReference.java b/src/main/java/org/zwobble/mammoth/internal/documents/CommentReference.java
new file mode 100644
index 0000000..cea65f4
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/CommentReference.java
@@ -0,0 +1,18 @@
+package org.zwobble.mammoth.internal.documents;
+
+public class CommentReference implements DocumentElement {
+ private final String commentId;
+
+ public CommentReference(String commentId) {
+ this.commentId = commentId;
+ }
+
+ public String getCommentId() {
+ return commentId;
+ }
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java b/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java
index 569a525..e087746 100644
--- a/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java
@@ -15,6 +15,8 @@ public interface DocumentElementVisitor<T> {
T visit(Hyperlink hyperlink);
T visit(Bookmark bookmark);
T visit(NoteReference noteReference);
+ T visit(CommentReference commentReference);
T visit(Image image);
+
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
index 03eb668..6dd1134 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
@@ -79,6 +79,8 @@ public class BodyXmlReader {
return readNoteReference(NoteType.FOOTNOTE, element);
case "w:endnoteReference":
return readNoteReference(NoteType.ENDNOTE, element);
+ case "w:commentReference":
+ return readCommentReference(element);
case "w:pict":
return readPict(element);
@@ -111,7 +113,6 @@ public class BodyXmlReader {
case "w:lastRenderedPageBreak":
case "w:commentRangeStart":
case "w:commentRangeEnd":
- case "w:commentReference":
case "w:del":
case "w:footnoteRef":
case "w:endnoteRef":
@@ -369,6 +370,11 @@ public class BodyXmlReader {
return success(new NoteReference(noteType, noteId));
}
+ private ReadResult readCommentReference(XmlElement element) {
+ String commentId = element.getAttribute("w:id");
+ return success(new CommentReference(commentId));
+ }
+
private ReadResult readPict(XmlElement element) {
return readElements(element.getChildren()).toExtra();
}
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
index bf3c5e5..3a0da26 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -514,6 +514,14 @@ public class BodyXmlTests {
}
@Test
+ public void commentReferenceHasIdRead() {
+ XmlElement element = element("w:commentReference", map("w:id", "4"));
+ assertThat(
+ readSuccess(bodyReader(), element),
+ deepEquals(new CommentReference("4")));
+ }
+
+ @Test
public void textBoxesHaveContentAppendedAfterContainingParagraph() {
XmlElement textBox = element("w:pict", list(
element("v:shape", list(
@@ -693,7 +701,6 @@ public class BodyXmlTests {
assertIsIgnored("w:lastRenderedPageBreak");
assertIsIgnored("w:commentRangeStart");
assertIsIgnored("w:commentRangeEnd");
- assertIsIgnored("w:commentReference");
assertIsIgnored("w:del");
assertIsIgnored("w:footnoteRef");
assertIsIgnored("w:endnoteRef");