You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2022/12/21 13:14:19 UTC
[myfaces] branch 2.3-next updated: https://issues.apache.org/jira/browse/MYFACES-4040: merging in smaller code improvements from 3.0
This is an automated email from the ASF dual-hosted git repository.
werpu pushed a commit to branch 2.3-next
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/2.3-next by this push:
new 73dac0478 https://issues.apache.org/jira/browse/MYFACES-4040: merging in smaller code improvements from 3.0
new 55b3201be Merge pull request #453 from werpu/2.3-next
73dac0478 is described below
commit 73dac0478dd70854d85da5c03891a58b00e823ba
Author: Werner Punz <we...@gmail.com>
AuthorDate: Wed Dec 21 13:44:19 2022 +0100
https://issues.apache.org/jira/browse/MYFACES-4040: merging in smaller code improvements from 3.0
---
.../renderkit/html/util/AjaxScriptBuilder.java | 100 +++++++++++++--------
1 file changed, 64 insertions(+), 36 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/AjaxScriptBuilder.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/AjaxScriptBuilder.java
index 6f61701c0..e20a71540 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/AjaxScriptBuilder.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/AjaxScriptBuilder.java
@@ -29,11 +29,39 @@ import javax.faces.component.search.SearchExpressionContext;
import javax.faces.component.search.SearchExpressionHandler;
import javax.faces.context.FacesContext;
import org.apache.myfaces.component.search.MyFacesSearchExpressionHints;
+import org.apache.myfaces.util.SharedStringBuilder;
import org.apache.myfaces.util.lang.StringUtils;
// CHECKSTYLE:OFF
public class AjaxScriptBuilder
-{
+{
+
+ private static final String AJAX_PARAM_SB = "oam.renderkit.AJAX_PARAM_SB";
+
+ private static final String QUOTE = "'";
+ private static final String BLANK = " ";
+
+ private static final String AJAX_KEY_ONERROR = "onerror";
+ private static final String AJAX_KEY_ONEVENT = "onevent";
+ private static final String AJAX_KEY_DELAY = "delay";
+ private static final String AJAX_KEY_RESETVALUES = "resetValues";
+
+ private static final String AJAX_VAL_THIS = "this";
+ private static final String AJAX_VAL_EVENT = "event";
+
+ private static final String COLON = ":";
+ private static final String COMMA = ",";
+
+ private static final String L_PAREN = "(";
+ private static final String R_PAREN = ")";
+
+ private static final String L_C_BRACE = "{";
+ private static final String R_C_BRACE = "}";
+ public static final String AJAX_KEY_PARAMS = "params";
+ public static final String AJAX_VAL_NULL = "null";
+ public static final String MYFACES_AB = "myfaces.ab";
+
+
public static void build(FacesContext context,
StringBuilder sb,
UIComponent component,
@@ -77,13 +105,13 @@ public class AjaxScriptBuilder
String execute = null;
if (executeList != null && !executeList.isEmpty())
{
- execute = String.join(" ", executeList);
+ execute = String.join(BLANK, executeList);
}
String render = null;
if (renderList != null && !renderList.isEmpty())
{
- render = String.join(" ", renderList);
+ render = String.join(BLANK, renderList);
}
build(context,
@@ -120,17 +148,17 @@ public class AjaxScriptBuilder
? (HtmlCommandScript) component
: null;
- sb.append("myfaces.ab(");
+ sb.append(MYFACES_AB +L_PAREN);
if (sourceId == null)
{
- sb.append("this");
+ sb.append(AJAX_VAL_THIS);
}
else
{
- sb.append('\'');
+ sb.append(QUOTE);
sb.append(sourceId);
- sb.append('\'');
+ sb.append(QUOTE);
if (!sourceId.trim().equals(component.getClientId(context)))
{
@@ -153,13 +181,13 @@ public class AjaxScriptBuilder
}
}
}
- sb.append(',');
+ sb.append(COMMA);
- sb.append(commandScript == null ? "event" : "null");
- sb.append(",'");
+ sb.append(commandScript == null ? AJAX_VAL_EVENT : AJAX_VAL_NULL);
+ sb.append(COMMA+QUOTE);
sb.append(eventName);
- sb.append("',");
+ sb.append(QUOTE+COMMA);
SearchExpressionHandler seHandler = null;
SearchExpressionContext seContext = null;
@@ -172,35 +200,35 @@ public class AjaxScriptBuilder
}
appendIds(sb, execute, seHandler, seContext);
- sb.append(',');
+ sb.append(COMMA);
appendIds(sb, render, seHandler, seContext);
if (onevent != null || onerror != null || delay != null || resetValues != null
|| (params != null && !params.isEmpty()) || (uiParams != null && !uiParams.isEmpty()))
{
- sb.append(",{");
+ sb.append(COMMA+L_C_BRACE);
if (onevent != null)
{
- appendProperty(sb, "onevent", onevent, false);
+ appendProperty(sb, AJAX_KEY_ONEVENT, onevent, false);
}
if (onerror != null)
{
- appendProperty(sb, "onerror", onerror, false);
+ appendProperty(sb, AJAX_KEY_ONERROR, onerror, false);
}
if (delay != null)
{
- appendProperty(sb, "delay", delay, true);
+ appendProperty(sb, AJAX_KEY_DELAY, delay, true);
}
if (resetValues != null)
{
- appendProperty(sb, "resetValues", resetValues, false);
+ appendProperty(sb, AJAX_KEY_RESETVALUES, resetValues, false);
}
if ((params != null && !params.isEmpty()) || (uiParams != null && !uiParams.isEmpty()))
{
- StringBuilder paramsBuilder = new StringBuilder();
- paramsBuilder.append('{');
+ StringBuilder paramsBuilder = SharedStringBuilder.get(context, AJAX_PARAM_SB, 60);
+ paramsBuilder.append(L_C_BRACE);
if (params != null && !params.isEmpty())
{
if (params instanceof RandomAccess)
@@ -229,21 +257,21 @@ public class AjaxScriptBuilder
appendProperty(paramsBuilder, param.getName(), param.getValue(), true);
}
}
- paramsBuilder.append('}');
- sb.append("params: ");
+ paramsBuilder.append(R_C_BRACE);
+ sb.append(AJAX_KEY_PARAMS+COLON);
sb.append(paramsBuilder);
}
- sb.append('}');
+ sb.append(R_C_BRACE);
}
- sb.append(')');
+ sb.append(R_PAREN);
}
private static void appendIds(StringBuilder sb, String expressions,
SearchExpressionHandler handler, SearchExpressionContext searchExpressionContext)
{
- sb.append('\'');
+ sb.append(QUOTE);
if (StringUtils.isNotBlank(expressions))
{
@@ -256,14 +284,14 @@ public class AjaxScriptBuilder
{
if (i > 0)
{
- sb.append(' ');
+ sb.append(BLANK);
}
sb.append(clientIds.get(i));
}
}
}
- sb.append('\'');
+ sb.append(QUOTE);
}
@@ -278,30 +306,30 @@ public class AjaxScriptBuilder
}
char lastChar = builder.charAt(builder.length() - 1);
- if (lastChar != ',' && lastChar != '{')
+ if (!COMMA.equals(String.valueOf(lastChar)) && !L_C_BRACE.equals(String.valueOf(lastChar)))
{
- builder.append(',');
+ builder.append(COMMA);
}
- builder.append('\'');
+ builder.append(QUOTE);
builder.append(name);
- builder.append('\'');
+ builder.append(QUOTE);
- builder.append(':');
+ builder.append(COLON);
if (value == null)
{
- builder.append("''");
+ builder.append(QUOTE+QUOTE);
}
else if (quoteValue)
{
- builder.append('\'');
- builder.append(value.toString());
- builder.append('\'');
+ builder.append(QUOTE);
+ builder.append(value);
+ builder.append(QUOTE);
}
else
{
- builder.append(value.toString());
+ builder.append(value);
}
}
}