aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java
index 979f292..ee81dcf 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java
@@ -6,47 +6,40 @@ import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
+import static java.util.Arrays.asList;
import static org.zwobble.mammoth.internal.util.Lists.list;
-import static org.zwobble.mammoth.internal.util.Lists.reversed;
import static org.zwobble.mammoth.internal.util.Maps.map;
-public class HtmlPath {
- public static final HtmlPath EMPTY = new HtmlPath(list());
+public interface HtmlPath {
+ HtmlPath EMPTY = new HtmlPathElements(list());
- public static HtmlPath element(String tagName) {
+ static HtmlPath elements(HtmlPathElement... elements) {
+ return new HtmlPathElements(asList(elements));
+ }
+
+ static HtmlPath element(String tagName) {
return element(tagName, map());
}
- public static HtmlPath element(String tagName, Map<String, String> attributes) {
- return new HtmlPath(list(new HtmlPathElement(list(tagName), attributes, false)));
+ static HtmlPath element(String tagName, Map<String, String> attributes) {
+ return new HtmlPathElements(list(new HtmlPathElement(list(tagName), attributes, false)));
}
- public static HtmlPath collapsibleElement(String tagName) {
+ static HtmlPath collapsibleElement(String tagName) {
return collapsibleElement(tagName, map());
}
- public static HtmlPath collapsibleElement(List<String> tagNames) {
+ static HtmlPath collapsibleElement(List<String> tagNames) {
return collapsibleElement(tagNames, map());
}
- public static HtmlPath collapsibleElement(String tagName, Map<String, String> attributes) {
+ static HtmlPath collapsibleElement(String tagName, Map<String, String> attributes) {
return collapsibleElement(list(tagName), attributes);
}
- public static HtmlPath collapsibleElement(List<String> tagNames, Map<String, String> attributes) {
- return new HtmlPath(list(new HtmlPathElement(tagNames, attributes, true)));
- }
-
- private final List<HtmlPathElement> elements;
-
- public HtmlPath(List<HtmlPathElement> elements) {
- this.elements = elements;
+ static HtmlPath collapsibleElement(List<String> tagNames, Map<String, String> attributes) {
+ return new HtmlPathElements(list(new HtmlPathElement(tagNames, attributes, true)));
}
- public Supplier<List<HtmlNode>> wrap(Supplier<List<HtmlNode>> generateNodes) {
- for (HtmlPathElement element : reversed(elements)) {
- generateNodes = element.wrap(generateNodes);
- }
- return generateNodes;
- }
+ Supplier<List<HtmlNode>> wrap(Supplier<List<HtmlNode>> generateNodes);
}