diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-13 20:59:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-13 21:05:27 +0000 |
| commit | 13a08b04b74065a2e2ba8e9b0beb3882d03735ca (patch) | |
| tree | 00578fe2607d528cb946bad278a60bee83627750 /src/main/java | |
| parent | 290f131be368cb8f46d62be124ce7141028e7b5a (diff) | |
Read bookmarks
Diffstat (limited to 'src/main/java')
4 files changed, 35 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java index caf668f..9991266 100644 --- a/src/main/java/org/zwobble/mammoth/Mammoth.java +++ b/src/main/java/org/zwobble/mammoth/Mammoth.java @@ -89,6 +89,11 @@ public class Mammoth { public String visit(Hyperlink hyperlink) { throw new UnsupportedOperationException(); } + + @Override + public String visit(Bookmark bookmark) { + throw new UnsupportedOperationException(); + } }); } } diff --git a/src/main/java/org/zwobble/mammoth/documents/Bookmark.java b/src/main/java/org/zwobble/mammoth/documents/Bookmark.java new file mode 100644 index 0000000..598e83a --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/Bookmark.java @@ -0,0 +1,14 @@ +package org.zwobble.mammoth.documents; + +public class Bookmark implements DocumentElement { + private final String name; + + public Bookmark(String name) { + this.name = name; + } + + @Override + public <T> T accept(DocumentElementVisitor<T> visitor) { + return visitor.visit(this); + } +} diff --git a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java index 564bacb..84fccc2 100644 --- a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java +++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java @@ -12,4 +12,5 @@ public interface DocumentElementVisitor<T> { T visit(TableCell tableCell); T visit(Hyperlink hyperlink); + T visit(Bookmark bookmark); } diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index e283a9c..fd32aae 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -47,6 +47,12 @@ public class BodyXmlReader { case "w:tc": return readElements(element.children()).map(TableCell::new); + case "w:hyperlink": + return readHyperlink(element); + + case "w:bookmarkStart": + return readBookmark(element); + case "w:ins": case "w:smartTag": case "w:drawing": @@ -56,9 +62,6 @@ public class BodyXmlReader { case "w:txbxContent": return readElements(element.children()); - case "w:hyperlink": - return readHyperlink(element); - case "w:pPr": return EMPTY_SUCCESS; @@ -172,6 +175,15 @@ public class BodyXmlReader { } } + private ReadResult readBookmark(XmlElement element) { + String name = element.getAttribute("w:name"); + if (name.equals("_GoBack")) { + return ReadResult.EMPTY_SUCCESS; + } else { + return success(new Bookmark(name)); + } + } + private Optional<String> readVal(XmlElementLike element, String name) { return element.findChildOrEmpty(name).getAttributeOrNone("w:val"); } |
