aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-24 08:16:16 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-24 08:16:16 +0000
commit3e2786a004eddf968a5fa7d5a92dff5b1b5f7734 (patch)
tree7fa1bcc1e484cd0ef782f64baf504ee83333d397 /src/main/java/org/zwobble/mammoth/xml/XmlElement.java
parent0dc3a12affc2e46c1a0df2899cf51a1ae3fdbd61 (diff)
Create internal package
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/xml/XmlElement.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/xml/XmlElement.java89
1 files changed, 0 insertions, 89 deletions
diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
deleted file mode 100644
index cf1dc67..0000000
--- a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.zwobble.mammoth.xml;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableList;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static com.google.common.collect.Iterables.*;
-
-public class XmlElement implements XmlNode, XmlElementLike {
- private final String name;
- private final Map<String, String> attributes;
- private final List<XmlNode> children;
-
- public XmlElement(String name, Map<String, String> attributes, List<XmlNode> children) {
- this.name = name;
- this.attributes = attributes;
- this.children = children;
- }
-
- public String getName() {
- return name;
- }
-
- public Map<String, String> getAttributes() {
- return attributes;
- }
-
- public String getAttribute(String name) {
- // TODO: throw more informative error message
- return getAttributeOrNone(name).get();
- }
-
- @Override
- public Optional<String> getAttributeOrNone(String name) {
- return Optional.ofNullable(attributes.get(name));
- }
-
- public List<XmlNode> getChildren() {
- return children;
- }
-
- @Override
- public String innerText() {
- return Joiner.on("").join(transform(children, XmlNode::innerText));
- }
-
- @Override
- public <T> T accept(XmlNodeVisitor<T> visitor) {
- return visitor.visit(this);
- }
-
- public Iterable<XmlNode> children() {
- return children;
- }
-
- @Override
- public String toString() {
- return "XmlElement(name=" + name + ", attributes=" + attributes
- + ", children=" + children + ")";
- }
-
- public XmlElementList findChildren(String name) {
- Iterable<XmlElement> filtered = findChildrenIterable(name);
- return new XmlElementList(ImmutableList.copyOf(filtered));
- }
-
- public XmlElement findChild(String name) {
- return findChildrenIterable(name).iterator().next();
- }
-
- @Override
- public boolean hasChild(String name) {
- return findChildrenIterable(name).iterator().hasNext();
- }
-
- @Override
- public XmlElementLike findChildOrEmpty(String name) {
- return getFirst(findChildrenIterable(name), NullXmlElement.INSTANCE);
- }
-
- private Iterable<XmlElement> findChildrenIterable(String name) {
- return filter(
- filter(children, XmlElement.class),
- child -> child.getName().equals(name));
- }
-}