diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-06-04 14:54:27 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-06-04 14:54:27 +0100 |
| commit | db126d0087963aad877efca233fb1123e9872051 (patch) | |
| tree | 92abe9ecb381f28002e77a2f9177872c28af4dbf /src/main/java/org/zwobble/mammoth/internal/xml | |
| parent | b2c22b0696487284ce1ae9cc908f3f333bcde6d5 (diff) | |
Return optional element from findChild
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/xml')
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(); } |
