Moved renderer methods to RenderUtils

This commit is contained in:
Erik C. Thauvin 2023-03-16 01:14:58 -07:00
parent 54f40eb41e
commit b7c9695395
7 changed files with 178 additions and 175 deletions

View file

@ -36,39 +36,11 @@ import rife.tools.StringUtils;
* @since 1.0
*/
public class EncodeJS implements ValueRenderer {
/**
* Encodes a string to JavaScript/ECMAScript.
*
* @param src the source string.
* @return the enocded string
*/
public static String encodeJS(String src) {
if (src == null || src.isBlank()) {
return src;
}
var sb = new StringBuilder();
var len = src.length();
char c;
for (var i = 0; i < len; i++) {
c = src.charAt(i);
switch (c) {
case '\'' -> sb.append("\\'");
case '"' -> sb.append("\\\"");
case '\\' -> sb.append("\\\\");
case '/' -> sb.append("\\/");
default -> sb.append(c);
}
}
return sb.toString();
}
/**
* {@inheritDoc}
*/
@Override
public String render(Template template, String valueId, String differentiator) {
return encodeJS(RenderUtils.fetchValue(template, differentiator));
return RenderUtils.encodeJS(RenderUtils.fetchValue(template, differentiator));
}
}