aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/xml
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-09-26 18:11:53 +0100
committerMichael Williamson <mike@zwobble.org>2015-09-26 18:11:53 +0100
commit6005c9dc75a8d17761d775b6a86d79892aef1a56 (patch)
treebad795608d29184bdc7ab1f2da54d42c67eeab81 /src/main/java/org/zwobble/mammoth/xml
parent2da5b5790131faaafa5d87dd83ad388a3f38ffc2 (diff)
Add conversion of single paragraph documents
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/xml')
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlElement.java9
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlNode.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlNodeVisitor.java6
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java5
4 files changed, 21 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
index a49f5f8..b5e8f1b 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
@@ -27,4 +27,13 @@ public class XmlElement implements XmlNode {
private final String name;
private final Map<String, String> attributes;
private final List<XmlNode> children;
+
+ @Override
+ public <T> T accept(XmlNodeVisitor<T> visitor) {
+ return visitor.visit(this);
+ }
+
+ public Iterable<XmlNode> children() {
+ return children;
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlNode.java b/src/main/java/org/zwobble/mammoth/xml/XmlNode.java
index c91e100..37ce2cf 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlNode.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlNode.java
@@ -1,5 +1,5 @@
package org.zwobble.mammoth.xml;
public interface XmlNode {
-
+ <T> T accept(XmlNodeVisitor<T> visitor);
}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlNodeVisitor.java b/src/main/java/org/zwobble/mammoth/xml/XmlNodeVisitor.java
new file mode 100644
index 0000000..717e3db
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlNodeVisitor.java
@@ -0,0 +1,6 @@
+package org.zwobble.mammoth.xml;
+
+public interface XmlNodeVisitor<T> {
+ T visit(XmlElement element);
+ T Visit(XmlTextNode textNode);
+}
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java b/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java
index 0d63273..4d47626 100644
--- a/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java
+++ b/src/main/java/org/zwobble/mammoth/xml/XmlTextNode.java
@@ -5,4 +5,9 @@ import lombok.Value;
@Value
public class XmlTextNode implements XmlNode {
private String value;
+
+ @Override
+ public <T> T accept(XmlNodeVisitor<T> visitor) {
+ return visitor.Visit(this);
+ }
}