aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/documents
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-03 11:09:52 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-03 11:09:52 +0000
commitb3444db75e6575335fdfc4b75c7e9f9fab5bee85 (patch)
tree600f6a513d2ee2bf8ce59af0ef0ab81182ec6dd3 /src/main/java/org/zwobble/mammoth/documents
parentc8ff305d5cbbbd472b6dc04c40f25c0190ff3a04 (diff)
Use docx parsing in Mammoth
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/documents')
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/Document.java6
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/DocumentElement.java1
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java7
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java5
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/RunElement.java5
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/TextElement.java5
6 files changed, 28 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/Document.java b/src/main/java/org/zwobble/mammoth/documents/Document.java
index a31081a..4d91925 100644
--- a/src/main/java/org/zwobble/mammoth/documents/Document.java
+++ b/src/main/java/org/zwobble/mammoth/documents/Document.java
@@ -2,10 +2,14 @@ package org.zwobble.mammoth.documents;
import java.util.List;
-public class Document {
+public class Document implements HasChildren {
private final List<DocumentElement> children;
public Document(List<DocumentElement> children) {
this.children = children;
}
+
+ public List<DocumentElement> getChildren() {
+ return children;
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java b/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java
index d7b20d3..fd3990c 100644
--- a/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java
+++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElement.java
@@ -1,4 +1,5 @@
package org.zwobble.mammoth.documents;
public interface DocumentElement {
+ <T> T accept(DocumentElementVisitor<T> visitor);
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
new file mode 100644
index 0000000..bb41ff2
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/documents/DocumentElementVisitor.java
@@ -0,0 +1,7 @@
+package org.zwobble.mammoth.documents;
+
+public interface DocumentElementVisitor<T> {
+ T visit(ParagraphElement paragraph);
+ T visit(RunElement run);
+ T visit(TextElement text);
+}
diff --git a/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java b/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java
index 22d9306..15c2b85 100644
--- a/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java
+++ b/src/main/java/org/zwobble/mammoth/documents/ParagraphElement.java
@@ -19,4 +19,9 @@ public class ParagraphElement implements DocumentElement, HasChildren {
public List<DocumentElement> getChildren() {
return children;
}
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/RunElement.java b/src/main/java/org/zwobble/mammoth/documents/RunElement.java
index ef063dc..f33eca3 100644
--- a/src/main/java/org/zwobble/mammoth/documents/RunElement.java
+++ b/src/main/java/org/zwobble/mammoth/documents/RunElement.java
@@ -12,4 +12,9 @@ public class RunElement implements DocumentElement, HasChildren {
public List<DocumentElement> getChildren() {
return children;
}
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/documents/TextElement.java b/src/main/java/org/zwobble/mammoth/documents/TextElement.java
index e2e7383..00281d0 100644
--- a/src/main/java/org/zwobble/mammoth/documents/TextElement.java
+++ b/src/main/java/org/zwobble/mammoth/documents/TextElement.java
@@ -10,4 +10,9 @@ public class TextElement implements DocumentElement {
public String getValue() {
return value;
}
+
+ @Override
+ public <T> T accept(DocumentElementVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
}