aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/styles
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/styles')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java7
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java7
2 files changed, 10 insertions, 4 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 93025d9..979f292 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java
@@ -4,6 +4,7 @@ import org.zwobble.mammoth.internal.html.HtmlNode;
import java.util.List;
import java.util.Map;
+import java.util.function.Supplier;
import static org.zwobble.mammoth.internal.util.Lists.list;
import static org.zwobble.mammoth.internal.util.Lists.reversed;
@@ -42,10 +43,10 @@ public class HtmlPath {
this.elements = elements;
}
- public List<HtmlNode> wrap(List<HtmlNode> nodes) {
+ public Supplier<List<HtmlNode>> wrap(Supplier<List<HtmlNode>> generateNodes) {
for (HtmlPathElement element : reversed(elements)) {
- nodes = element.wrap(nodes);
+ generateNodes = element.wrap(generateNodes);
}
- return nodes;
+ return generateNodes;
}
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java
index 08221eb..4c4ff98 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java
@@ -5,6 +5,7 @@ import org.zwobble.mammoth.internal.html.HtmlNode;
import java.util.List;
import java.util.Map;
+import java.util.function.Supplier;
import static org.zwobble.mammoth.internal.util.Lists.list;
import static org.zwobble.mammoth.internal.util.Maps.map;
@@ -32,7 +33,11 @@ public class HtmlPathElement {
this.isCollapsible = isCollapsible;
}
- public List<HtmlNode> wrap(List<HtmlNode> nodes) {
+ public Supplier<List<HtmlNode>> wrap(Supplier<List<HtmlNode>> generateNodes) {
+ return () -> wrapNodes(generateNodes.get());
+ }
+
+ private List<HtmlNode> wrapNodes(List<HtmlNode> nodes) {
return list(new HtmlElement(tagNames, attributes, nodes, isCollapsible));
}
}