From 22b699c4351a3eadc92b3ffb690b64a7ab903f1f Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 14 Feb 2016 12:43:24 +0000 Subject: Add attributes to self closing element --- .../java/org/zwobble/mammoth/html/HtmlWriter.java | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/main/java/org/zwobble/mammoth/html/HtmlWriter.java') diff --git a/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java b/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java index fdf1e6c..4262e03 100644 --- a/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java +++ b/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java @@ -1,11 +1,35 @@ package org.zwobble.mammoth.html; +import com.google.common.base.Function; +import com.google.common.collect.Ordering; + +import java.util.List; +import java.util.Map; + public class HtmlWriter { public static String escapeText(String text) { return text.replace("&", "&").replace("<", "<").replace(">", ">"); } - public static String escapeAttributeValue(String value) { + private static String escapeAttributeValue(String value) { return escapeText(value).replace("\"", """); } + + public static void generateAttributes(Map attributes, StringBuilder builder) { + List> sortedAttributes = orderBy(Map.Entry::getKey) + .sortedCopy(attributes.entrySet()); + + for (Map.Entry attribute : sortedAttributes) { + builder + .append(" ") + .append(attribute.getKey()) + .append("=\"") + .append(HtmlWriter.escapeAttributeValue(attribute.getValue())) + .append("\""); + } + } + + private static > Ordering orderBy(Function getKey) { + return Ordering.from((first, second) -> getKey.apply(first).compareTo(getKey.apply(second))); + } } -- cgit v1.2.3