diff --git a/README.md b/README.md index c2ace52..1948916 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** - - Converts a template value to uppercase. + - Convert 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 71f007e..8ddef91 100644 --- a/lib/src/main/java/rife2/render/Capitalize.java +++ b/lib/src/main/java/rife2/render/Capitalize.java @@ -19,7 +19,8 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; -import rife.tools.Localization; + +import java.util.Locale; /** *

Capitalizes a template value.

@@ -28,7 +29,7 @@ import rife.tools.Localization; * *
  *   <!--v render:rife.render.Capitalize:valueId/-->
- *   {{v render:rife.render.Capitalize:valueId/}}
+ *   {{v render:rife.render.Capitalize:valueId}}
  * 
* * @author Erik C. Thauvin @@ -40,9 +41,9 @@ public class Capitalize implements ValueRenderer { */ @Override public String render(Template template, String valueId, String differentiator) { - if (template.hasValueId(differentiator)) { + if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { var value = template.getValue(differentiator); - return value.substring(0, 1).toUpperCase(Localization.getLocale()) + value.substring(1); + return value.substring(0, 1).toUpperCase(Locale.getDefault()) + 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 b47fbc8..ebaa745 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 (template.hasValueId(differentiator)) { + if (differentiator != null && !differentiator.isBlank() && 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 90b0bb8..0141c4f 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 (template.hasValueId(differentiator)) { + if (differentiator != null && !differentiator.isBlank() && 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 459c3b0..01fef1d 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 (template.hasValueId(differentiator)) { + if (differentiator != null && !differentiator.isBlank() && 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 1820d0f..c80f150 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 (template.hasValueId(differentiator)) { + if (differentiator != null && !differentiator.isBlank() && 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 70241db..b902db4 100644 --- a/lib/src/main/java/rife2/render/EncodeQp.java +++ b/lib/src/main/java/rife2/render/EncodeQp.java @@ -19,7 +19,8 @@ package rife2.render; import rife.template.Template; import rife.template.ValueRenderer; -import rife.tools.Localization; + +import java.util.Locale; /** *

Converts a template value to a quoted-printable string.

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

Converts a template value to lowercase.

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

Un-capitalizes a template value.

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

Convert a template value to uppercase.

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