From ed074b78dbb2a0d15ccb985b1e9531aace0fd4ea Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 13 Feb 2016 21:25:42 +0000 Subject: Read footnote references --- src/main/java/org/zwobble/mammoth/Mammoth.java | 5 +++++ .../mammoth/documents/DocumentElementVisitor.java | 2 +- .../org/zwobble/mammoth/documents/NoteReference.java | 18 ++++++++++++++++++ .../java/org/zwobble/mammoth/docx/BodyXmlReader.java | 7 +++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/zwobble/mammoth/documents/NoteReference.java (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java index a1bf0d0..9564a6f 100644 --- a/src/main/java/org/zwobble/mammoth/Mammoth.java +++ b/src/main/java/org/zwobble/mammoth/Mammoth.java @@ -99,6 +99,11 @@ public class Mammoth { public String visit(Bookmark bookmark) { throw new UnsupportedOperationException(); } + + @Override + public String visit(NoteReference noteReference) { + throw new UnsupportedOperationException(); + } }); } } diff --git a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java index b4cd390..f3a4ca4 100644 --- a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java +++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java @@ -14,5 +14,5 @@ public interface DocumentElementVisitor { T visit(Hyperlink hyperlink); T visit(Bookmark bookmark); - + T visit(NoteReference noteReference); } diff --git a/src/main/java/org/zwobble/mammoth/documents/NoteReference.java b/src/main/java/org/zwobble/mammoth/documents/NoteReference.java new file mode 100644 index 0000000..05311c0 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/NoteReference.java @@ -0,0 +1,18 @@ +package org.zwobble.mammoth.documents; + +public class NoteReference implements DocumentElement { + public static NoteReference footnoteReference(String noteId) { + return new NoteReference(noteId); + } + + private final String noteId; + + public NoteReference(String noteId) { + this.noteId = noteId; + } + + @Override + public T accept(DocumentElementVisitor visitor) { + return visitor.visit(this); + } +} diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index 49abbb5..5fe6f80 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -54,6 +54,8 @@ public class BodyXmlReader { return readHyperlink(element); case "w:bookmarkStart": return readBookmark(element); + case "w:footnoteReference": + return readNoteReference(element); case "w:ins": case "w:smartTag": @@ -212,6 +214,11 @@ public class BodyXmlReader { } } + private ReadResult readNoteReference(XmlElement element) { + String noteId = element.getAttribute("w:id"); + return success(new NoteReference(noteId)); + } + private Optional readVal(XmlElementLike element, String name) { return element.findChildOrEmpty(name).getAttributeOrNone("w:val"); } -- cgit v1.2.3