package jeql.std.function; import jeql.api.function.FunctionClass; public class HtmlFunction implements FunctionClass { public static String encode(String str) { StringBuffer buf = new StringBuffer((int) (str.length() * 1.1)); int len = str.length(); for (int i = 0; i < len; i++) { char c = str.charAt(i); String entityName = entityName(c); if (entityName == null) { if (c > 0x7F) { buf.append("&#"); buf.append(Integer.toString(c, 10)); buf.append(';'); } else { buf.append(c); } } else { buf.append('&'); buf.append(entityName); buf.append(';'); } } return buf.toString(); } private static String entityName(char c) { switch (c) { case '"': return "quot"; case '&': return "amp"; case '<': return "lt"; case '>': return "gt"; } return null; } }