From 96946693f624f00170cd5b29476c013f1e4798e4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 28 Aug 2016 23:19:56 +0100 Subject: Extract interface from HtmlPath --- .../zwobble/mammoth/internal/styles/HtmlPath.java | 39 +++++++++------------- 1 file changed, 16 insertions(+), 23 deletions(-) (limited to 'src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java') 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 attributes) { - return new HtmlPath(list(new HtmlPathElement(list(tagName), attributes, false))); + static HtmlPath element(String tagName, Map 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 tagNames) { + static HtmlPath collapsibleElement(List tagNames) { return collapsibleElement(tagNames, map()); } - public static HtmlPath collapsibleElement(String tagName, Map attributes) { + static HtmlPath collapsibleElement(String tagName, Map attributes) { return collapsibleElement(list(tagName), attributes); } - public static HtmlPath collapsibleElement(List tagNames, Map attributes) { - return new HtmlPath(list(new HtmlPathElement(tagNames, attributes, true))); - } - - private final List elements; - - public HtmlPath(List elements) { - this.elements = elements; + static HtmlPath collapsibleElement(List tagNames, Map attributes) { + return new HtmlPathElements(list(new HtmlPathElement(tagNames, attributes, true))); } - public Supplier> wrap(Supplier> generateNodes) { - for (HtmlPathElement element : reversed(elements)) { - generateNodes = element.wrap(generateNodes); - } - return generateNodes; - } + Supplier> wrap(Supplier> generateNodes); } -- cgit v1.2.3