diff options
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.java | 39 |
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); } |
