diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-16 20:45:00 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-16 20:45:00 +0000 |
| commit | 250c8850c4f7e0b2db5146683392fc20485b9339 (patch) | |
| tree | 728a8067331b6f984fab7f9b1cb7cec5a493e7f3 /src/main/java/org/zwobble/mammoth/internal/html | |
| parent | ed66bfe54f283cbf27bed4d5b4bddf0c1bdf4808 (diff) | |
Introduce HtmlTag class
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/html')
3 files changed, 51 insertions, 22 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/html/Html.java b/src/main/java/org/zwobble/mammoth/internal/html/Html.java index f0a01dd..4c7a9a9 100644 --- a/src/main/java/org/zwobble/mammoth/internal/html/Html.java +++ b/src/main/java/org/zwobble/mammoth/internal/html/Html.java @@ -38,7 +38,7 @@ public class Html { } public static HtmlNode element(String tagName, Map<String, String> attributes, List<HtmlNode> children) { - return new HtmlElement(list(tagName), attributes, children, false); + return new HtmlElement(new HtmlTag(list(tagName), attributes, false, ""), children); } public static HtmlNode collapsibleElement(String tagName) { @@ -58,7 +58,7 @@ public class Html { } public static HtmlNode collapsibleElement(List<String> tagNames, Map<String, String> attributes, List<HtmlNode> children) { - return new HtmlElement(tagNames, attributes, children, true); + return new HtmlElement(new HtmlTag(tagNames, attributes, true, ""), children); } public static HtmlNode selfClosingElement(String tagName) { @@ -81,11 +81,7 @@ public class Html { if (children.isEmpty()) { return list(); } else { - return list(new HtmlElement( - element.getTagNames(), - element.getAttributes(), - children, - element.isCollapsible())); + return list(new HtmlElement(element.getTag(), children)); } } @@ -132,10 +128,9 @@ public class Html { @Override public HtmlNode visit(HtmlElement element) { return new HtmlElement( - element.getTagNames(), - element.getAttributes(), - collapse(element.getChildren()), - element.isCollapsible()); + element.getTag(), + collapse(element.getChildren()) + ); } @Override diff --git a/src/main/java/org/zwobble/mammoth/internal/html/HtmlElement.java b/src/main/java/org/zwobble/mammoth/internal/html/HtmlElement.java index e855f26..9999fbc 100644 --- a/src/main/java/org/zwobble/mammoth/internal/html/HtmlElement.java +++ b/src/main/java/org/zwobble/mammoth/internal/html/HtmlElement.java @@ -4,28 +4,28 @@ import java.util.List; import java.util.Map; public class HtmlElement implements HtmlNode { - private final List<String> tagNames; - private final Map<String, String> attributes; + private final HtmlTag tag; private final List<HtmlNode> children; - private final boolean collapsible; - public HtmlElement(List<String> tagNames, Map<String, String> attributes, List<HtmlNode> children, boolean collapsible) { - this.tagNames = tagNames; - this.attributes = attributes; + public HtmlElement(HtmlTag tag, List<HtmlNode> children) { + this.tag = tag; this.children = children; - this.collapsible = collapsible; + } + + public HtmlTag getTag() { + return tag; } public List<String> getTagNames() { - return tagNames; + return tag.getTagNames(); } public String getTagName() { - return tagNames.get(0); + return getTagNames().get(0); } public Map<String, String> getAttributes() { - return attributes; + return tag.getAttributes(); } public List<HtmlNode> getChildren() { @@ -33,7 +33,7 @@ public class HtmlElement implements HtmlNode { } public boolean isCollapsible() { - return collapsible; + return tag.isCollapsible(); } @Override diff --git a/src/main/java/org/zwobble/mammoth/internal/html/HtmlTag.java b/src/main/java/org/zwobble/mammoth/internal/html/HtmlTag.java new file mode 100644 index 0000000..ea42206 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/html/HtmlTag.java @@ -0,0 +1,34 @@ +package org.zwobble.mammoth.internal.html; + +import java.util.List; +import java.util.Map; + +public class HtmlTag { + private final List<String> tagNames; + private final Map<String, String> attributes; + private final boolean isCollapsible; + private final String separator; + + public HtmlTag(List<String> tagNames, Map<String, String> attributes, boolean isCollapsible, String separator) { + this.tagNames = tagNames; + this.attributes = attributes; + this.isCollapsible = isCollapsible; + this.separator = separator; + } + + public List<String> getTagNames() { + return tagNames; + } + + public Map<String, String> getAttributes() { + return attributes; + } + + public boolean isCollapsible() { + return isCollapsible; + } + + public String getSeparator() { + return separator; + } +} |
