aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/xml
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-06-04 14:54:27 +0100
committerMichael Williamson <mike@zwobble.org>2016-06-04 14:54:27 +0100
commitdb126d0087963aad877efca233fb1123e9872051 (patch)
tree92abe9ecb381f28002e77a2f9177872c28af4dbf /src/main/java/org/zwobble/mammoth/internal/xml
parentb2c22b0696487284ce1ae9cc908f3f333bcde6d5 (diff)
Return optional element from findChild
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/xml')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/xml/NullXmlElement.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java7
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/xml/XmlElementLike.java2
3 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/NullXmlElement.java b/src/main/java/org/zwobble/mammoth/internal/xml/NullXmlElement.java
index ecc7971..4d32d38 100644
--- a/src/main/java/org/zwobble/mammoth/internal/xml/NullXmlElement.java
+++ b/src/main/java/org/zwobble/mammoth/internal/xml/NullXmlElement.java
@@ -1,7 +1,10 @@
package org.zwobble.mammoth.internal.xml;
+import java.util.List;
import java.util.Optional;
+import static org.zwobble.mammoth.internal.util.Lists.list;
+
public class NullXmlElement implements XmlElementLike {
public static final XmlElementLike INSTANCE = new NullXmlElement();
@@ -22,4 +25,9 @@ public class NullXmlElement implements XmlElementLike {
public Optional<String> getAttributeOrNone(String name) {
return Optional.empty();
}
+
+ @Override
+ public List<XmlNode> getChildren() {
+ return list();
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java
index cd72494..0a1665c 100644
--- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java
+++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java
@@ -1,5 +1,7 @@
package org.zwobble.mammoth.internal.xml;
+import org.zwobble.mammoth.internal.util.Iterables;
+
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -47,6 +49,7 @@ public class XmlElement implements XmlNode, XmlElementLike {
return visitor.visit(this);
}
+ @Override
public List<XmlNode> getChildren() {
return children;
}
@@ -61,8 +64,8 @@ public class XmlElement implements XmlNode, XmlElementLike {
return new XmlElementList(toList(findChildrenIterable(name)));
}
- public XmlElement findChild(String name) {
- return findChildrenIterable(name).iterator().next();
+ public Optional<XmlElement> findChild(String name) {
+ return Iterables.getFirst(findChildrenIterable(name));
}
@Override
diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementLike.java b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementLike.java
index bdb3cc8..41df49f 100644
--- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementLike.java
+++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementLike.java
@@ -1,9 +1,11 @@
package org.zwobble.mammoth.internal.xml;
+import java.util.List;
import java.util.Optional;
public interface XmlElementLike {
boolean hasChild(String name);
XmlElementLike findChildOrEmpty(String name);
Optional<String> getAttributeOrNone(String name);
+ List<XmlNode> getChildren();
}