diff --git a/README.md b/README.md index 1948916..c2ace52 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ This project provides a set of template renderers. - **rife.render.Uncapitalize** - Un-capitalizes a template value. - **rife.render.Uppercase** - - Convert a template value to uppercase. + - Converts a template value to uppercase. - **rife.render.Year** - Renders the current year. @@ -49,7 +49,7 @@ All rendered can be used at follows: or ``` -{{v render:rife.render.RendererName:valueId}} +{{v render:rife.render.RendererName:valueId/}} ``` For example, to capitalize a template `foo` value: diff --git a/lib/src/main/java/rife2/render/Capitalize.java b/lib/src/main/java/rife2/render/Capitalize.java index 8ddef91..71f007e 100644 --- a/lib/src/main/java/rife2/render/Capitalize.java +++ b/lib/src/main/java/rife2/render/Capitalize.java @@ -19,8 +19,7 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; - -import java.util.Locale; +import rife.tools.Localization; /** *

Capitalizes a template value.

@@ -29,7 +28,7 @@ import java.util.Locale; * *
  *   <!--v render:rife.render.Capitalize:valueId/-->
- *   {{v render:rife.render.Capitalize:valueId}}
+ *   {{v render:rife.render.Capitalize:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,9 +40,9 @@ public class Capitalize implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { var value = template.getValue(differentiator); - return value.substring(0, 1).toUpperCase(Locale.getDefault()) + value.substring(1); + return value.substring(0, 1).toUpperCase(Localization.getLocale()) + value.substring(1); } else { return ""; } diff --git a/lib/src/main/java/rife2/render/EncodeBase64.java b/lib/src/main/java/rife2/render/EncodeBase64.java index ebaa745..b47fbc8 100644 --- a/lib/src/main/java/rife2/render/EncodeBase64.java +++ b/lib/src/main/java/rife2/render/EncodeBase64.java @@ -30,7 +30,7 @@ import java.nio.charset.StandardCharsets; * *
  *   <!--v render:rife.render.EncodeBase64:valueId/-->
- *   {{v render:rife.render.EncodeBase64:valueId}}
+ *   {{v render:rife.render.EncodeBase64:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -43,7 +43,7 @@ public class EncodeBase64 implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return StringUtils.encodeBase64(template.getValue(differentiator).getBytes(StandardCharsets.UTF_8)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeHtml.java b/lib/src/main/java/rife2/render/EncodeHtml.java index 0141c4f..90b0bb8 100644 --- a/lib/src/main/java/rife2/render/EncodeHtml.java +++ b/lib/src/main/java/rife2/render/EncodeHtml.java @@ -28,7 +28,7 @@ import rife.tools.StringUtils; * *
  *   <!--v render:rife.render.EncodeHtml:valueId/-->
- *   {{v render:rife.render.EncodeHtml:valueId}}
+ *   {{v render:rife.render.EncodeHtml:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,7 +41,7 @@ public class EncodeHtml implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return StringUtils.encodeHtml(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeHtmlEntities.java b/lib/src/main/java/rife2/render/EncodeHtmlEntities.java index 01fef1d..459c3b0 100644 --- a/lib/src/main/java/rife2/render/EncodeHtmlEntities.java +++ b/lib/src/main/java/rife2/render/EncodeHtmlEntities.java @@ -27,7 +27,7 @@ import rife.template.ValueRenderer; * *
  *   <!--v render:rife.render.EncodeHtmlEntities:valueId/-->
- *   {{v render:rife.render.EncodeHtmlEntities:valueId}}
+ *   {{v render:rife.render.EncodeHtmlEntities:valueId/}}
  * 
* *

For example {@code john@doe.com} would be encoded to:

@@ -59,7 +59,7 @@ public class EncodeHtmlEntities implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return toHtmlEntities(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeJson.java b/lib/src/main/java/rife2/render/EncodeJson.java index c80f150..1820d0f 100644 --- a/lib/src/main/java/rife2/render/EncodeJson.java +++ b/lib/src/main/java/rife2/render/EncodeJson.java @@ -28,7 +28,7 @@ import rife.tools.StringUtils; * *
  *   <!--v render:rife.render.EncodeJson:valueId/-->
- *   {{v render:rife.render.EncodeJson:valueId}}
+ *   {{v render:rife.render.EncodeJson:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,7 +41,7 @@ public class EncodeJson implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return StringUtils.encodeJson(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeQp.java b/lib/src/main/java/rife2/render/EncodeQp.java index b902db4..70241db 100644 --- a/lib/src/main/java/rife2/render/EncodeQp.java +++ b/lib/src/main/java/rife2/render/EncodeQp.java @@ -19,8 +19,7 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; - -import java.util.Locale; +import rife.tools.Localization; /** *

Converts a template value to a quoted-printable string.

@@ -29,7 +28,7 @@ import java.util.Locale; * *
  *   <!--v render:rife.render.EncodeQp:valueId/-->
- *   {{v render:rife.render.EncodeQp:valueId}}
+ *   {{v render:rife.render.EncodeQp:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -65,7 +64,7 @@ public class EncodeQp implements ValueRenderer { buff.append('0'); } - buff.append(hex.toUpperCase(Locale.getDefault())); + buff.append(hex.toUpperCase(Localization.getLocale())); } } @@ -77,7 +76,7 @@ public class EncodeQp implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return toQuotedPrintable(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeUnicode.java b/lib/src/main/java/rife2/render/EncodeUnicode.java index b2a734e..2b08365 100644 --- a/lib/src/main/java/rife2/render/EncodeUnicode.java +++ b/lib/src/main/java/rife2/render/EncodeUnicode.java @@ -28,7 +28,7 @@ import rife.tools.StringUtils; * *
  *   <!--v render:rife.render.EncodeUnicode:valueId/-->
- *   {{v render:rife.render.EncodeUnicode:valueId}}
+ *   {{v render:rife.render.EncodeUnicode:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,7 +41,7 @@ public class EncodeUnicode implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return StringUtils.encodeUnicode(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeUrl.java b/lib/src/main/java/rife2/render/EncodeUrl.java index 408ce5a..0eb0f0b 100644 --- a/lib/src/main/java/rife2/render/EncodeUrl.java +++ b/lib/src/main/java/rife2/render/EncodeUrl.java @@ -28,7 +28,7 @@ import rife.tools.StringUtils; * *
  *   <!--v render:rife.render.EncodeUrl:valueId/-->
- *   {{v render:rife.render.EncodeUrl:valueId}}
+ *   {{v render:rife.render.EncodeUrl:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,7 +41,7 @@ public class EncodeUrl implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return StringUtils.encodeUrl(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/EncodeXml.java b/lib/src/main/java/rife2/render/EncodeXml.java index 05a5abf..51d4802 100644 --- a/lib/src/main/java/rife2/render/EncodeXml.java +++ b/lib/src/main/java/rife2/render/EncodeXml.java @@ -28,7 +28,7 @@ import rife.tools.StringUtils; * *
  *   <!--v render:rife.render.EncodeXml:valueId/-->
- *   {{v render:rife.render.EncodeXml:valueId}}
+ *   {{v render:rife.render.EncodeXml:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,7 +41,7 @@ public class EncodeXml implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return StringUtils.encodeXml(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/Lowercase.java b/lib/src/main/java/rife2/render/Lowercase.java index c2e0195..f98a268 100644 --- a/lib/src/main/java/rife2/render/Lowercase.java +++ b/lib/src/main/java/rife2/render/Lowercase.java @@ -19,8 +19,7 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; - -import java.util.Locale; +import rife.tools.Localization; /** *

Converts a template value to lowercase.

@@ -29,7 +28,7 @@ import java.util.Locale; * *
  *   <!--v render:rife.render.Lowercase:valueId/-->
- *   {{v render:rife.render.Lowercase:valueId}}
+ *   {{v render:rife.render.Lowercase:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,8 +40,8 @@ public class Lowercase implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { - return template.getValue(differentiator).toLowerCase(Locale.getDefault()); + if (template.hasValueId(differentiator)) { + return template.getValue(differentiator).toLowerCase(Localization.getLocale()); } else { return ""; } diff --git a/lib/src/main/java/rife2/render/Rot13.java b/lib/src/main/java/rife2/render/Rot13.java index 3f9823c..cad83e4 100644 --- a/lib/src/main/java/rife2/render/Rot13.java +++ b/lib/src/main/java/rife2/render/Rot13.java @@ -27,7 +27,7 @@ import rife.template.ValueRenderer; * *
  *   <!--v render:rife.render.Rot13:valueId/-->
- *   {{v render:rife.render.Rot13:valueId}}
+ *   {{v render:rife.render.Rot13:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -77,7 +77,7 @@ public class Rot13 implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return rot13(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/SwapCase.java b/lib/src/main/java/rife2/render/SwapCase.java index 745446c..3759a02 100644 --- a/lib/src/main/java/rife2/render/SwapCase.java +++ b/lib/src/main/java/rife2/render/SwapCase.java @@ -27,7 +27,7 @@ import rife.template.ValueRenderer; * *
  *   <!--v render:rife.render.SwapCase:valueId/-->
- *   {{v render:rife.render.SwapCase:valueId}}
+ *   {{v render:rife.render.SwapCase:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -36,34 +36,32 @@ import rife.template.ValueRenderer; public class SwapCase implements ValueRenderer { /** * Swaps the case of a String. - * @param s the String to swap the case of + * + * @param src the String to swap the case of * @return the modified String or null */ - public static String swapCase(String s) { - if (s == null || s.isEmpty()) { - return s; + public static String swapCase(final String src) { + if (src == null || src.isEmpty()) { + return src; } - var buffer = s.toCharArray(); - var whitespace = true; - - for (var i = 0; i < buffer.length; i++) { - var ch = buffer[i]; - if (Character.isUpperCase(ch) || Character.isTitleCase(ch)) { - buffer[i] = Character.toLowerCase(ch); - whitespace = false; - } else if (Character.isLowerCase(ch)) { - if (whitespace) { - buffer[i] = Character.toTitleCase(ch); - whitespace = false; - } else { - buffer[i] = Character.toUpperCase(ch); - } + int offset = 0; + var len = src.length(); + var buff = new int[len]; + for (var i = 0; i < len; ) { + int newCodePoint; + var curCodePoint = src.codePointAt(i); + if (Character.isUpperCase(curCodePoint) || Character.isTitleCase(curCodePoint)) { + newCodePoint = Character.toLowerCase(curCodePoint); + } else if (Character.isLowerCase(curCodePoint)) { + newCodePoint = Character.toUpperCase(curCodePoint); } else { - whitespace = Character.isWhitespace(ch); + newCodePoint = curCodePoint; } + buff[offset++] = newCodePoint; + i += Character.charCount(newCodePoint); } - return new String(buffer); + return new String(buff, 0, offset); } /** @@ -71,7 +69,7 @@ public class SwapCase implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return swapCase(template.getValue(differentiator)); } else { return ""; diff --git a/lib/src/main/java/rife2/render/Trim.java b/lib/src/main/java/rife2/render/Trim.java index 3cbac05..b2738b2 100644 --- a/lib/src/main/java/rife2/render/Trim.java +++ b/lib/src/main/java/rife2/render/Trim.java @@ -27,7 +27,7 @@ import rife.template.ValueRenderer; * *
  *   <!--v render:rife.render.Trim:valueId/-->
- *   {{v render:rife.render.Trim:valueId}}
+ *   {{v render:rife.render.Trim:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -39,7 +39,7 @@ public class Trim implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { return template.getValue(differentiator).trim(); } else { return ""; diff --git a/lib/src/main/java/rife2/render/Uncapitalize.java b/lib/src/main/java/rife2/render/Uncapitalize.java index 46e36a1..9428299 100644 --- a/lib/src/main/java/rife2/render/Uncapitalize.java +++ b/lib/src/main/java/rife2/render/Uncapitalize.java @@ -19,8 +19,7 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; - -import java.util.Locale; +import rife.tools.Localization; /** *

Un-capitalizes a template value.

@@ -29,7 +28,7 @@ import java.util.Locale; * *
  *   <!--v render:rife.render.Uncapitalize:valueId/-->
- *   {{v render:rife.render.Uncapitalize:valueId}}
+ *   {{v render:rife.render.Uncapitalize:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,9 +40,9 @@ public class Uncapitalize implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + if (template.hasValueId(differentiator)) { var value = template.getValue(differentiator); - return value.substring(0, 1).toLowerCase(Locale.getDefault()) + value.substring(1); + return value.substring(0, 1).toLowerCase(Localization.getLocale()) + value.substring(1); } else { return ""; } diff --git a/lib/src/main/java/rife2/render/Uppercase.java b/lib/src/main/java/rife2/render/Uppercase.java index 57613e3..839bb1e 100644 --- a/lib/src/main/java/rife2/render/Uppercase.java +++ b/lib/src/main/java/rife2/render/Uppercase.java @@ -19,8 +19,7 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; - -import java.util.Locale; +import rife.tools.Localization; /** *

Convert a template value to uppercase.

@@ -29,7 +28,7 @@ import java.util.Locale; * *
  *   <!--v render:rife.render.Uppercase:valueId/-->
- *   {{v render:rife.render.Uppercase:valueId}}
+ *   {{v render:rife.render.Uppercase:valueId/}}
  * 
* * @author Erik C. Thauvin @@ -41,8 +40,8 @@ public class Uppercase implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { - return template.getValue(differentiator).toUpperCase(Locale.getDefault()); + if (template.hasValueId(differentiator)) { + return template.getValue(differentiator).toUpperCase(Localization.getLocale()); } else { return ""; }