FREEMARKER-55: use ArgumentArrayLayout methods to get vargs arg index

Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/b0f27aa3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/b0f27aa3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/b0f27aa3

Branch: refs/heads/3
Commit: b0f27aa3d519a7354bb818924b7335998d58041a
Parents: b8dcdc0
Author: Woonsan Ko <[email protected]>
Authored: Mon Sep 18 10:31:24 2017 -0400
Committer: Woonsan Ko <[email protected]>
Committed: Mon Sep 18 10:31:24 2017 -0400

----------------------------------------------------------------------
 .../org/apache/freemarker/spring/model/EvalFunction.java  |  2 --
 .../apache/freemarker/spring/model/MessageFunction.java   |  4 ++--
 .../org/apache/freemarker/spring/model/UrlFunction.java   | 10 +++++-----
 3 files changed, 7 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/b0f27aa3/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/EvalFunction.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/EvalFunction.java
 
b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/EvalFunction.java
index 4710f6d..ed6e8fa 100644
--- 
a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/EvalFunction.java
+++ 
b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/EvalFunction.java
@@ -89,8 +89,6 @@ class EvalFunction extends 
AbstractSpringTemplateFunctionModel {
                     false
                     );
 
-    private static final String EVALUATION_CONTEXT_VAR_NAME = 
"org.apache.freemarker.spring.model.EVALUATION_CONTEXT";
-
     private final ExpressionParser expressionParser = new 
SpelExpressionParser();
 
     protected EvalFunction(HttpServletRequest request, HttpServletResponse 
response) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/b0f27aa3/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/MessageFunction.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/MessageFunction.java
 
b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/MessageFunction.java
index e387a20..693633e 100644
--- 
a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/MessageFunction.java
+++ 
b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/MessageFunction.java
@@ -80,7 +80,6 @@ class MessageFunction extends 
AbstractSpringTemplateFunctionModel {
 
     private static final int CODE_PARAM_IDX = 0;
     private static final int MESSAGE_RESOLVABLE_PARAM_IDX = 1;
-    private static final int MESSAGE_ARGS_PARAM_IDX = 2;
 
     private static final String MESSAGE_RESOLVABLE_PARAM_NAME = "message";
 
@@ -119,7 +118,8 @@ class MessageFunction extends 
AbstractSpringTemplateFunctionModel {
 
             if (code != null) {
                 List<Object> msgArgumentList = null;
-                final TemplateCollectionModel messageArgsModel = 
(TemplateCollectionModel) args[MESSAGE_ARGS_PARAM_IDX];
+                final TemplateCollectionModel messageArgsModel = 
(TemplateCollectionModel) args[ARGS_LAYOUT
+                        .getPositionalVarargsArgumentIndex()];
 
                 if (!messageArgsModel.isEmptyCollection()) {
                     msgArgumentList = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/b0f27aa3/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/UrlFunction.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/UrlFunction.java
 
b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/UrlFunction.java
index 0198eaf..71220b1 100644
--- 
a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/UrlFunction.java
+++ 
b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/UrlFunction.java
@@ -76,7 +76,6 @@ class UrlFunction extends AbstractSpringTemplateFunctionModel 
{
 
     private static final int VALUE_PARAM_IDX = 0;
     private static final int CONTEXT_PARAM_IDX = 1;
-    private static final int PARAMS_PARAM_IDX = 2;
 
     private static final String CONTEXT_PARAM_NAME = "context";
 
@@ -109,7 +108,8 @@ class UrlFunction extends 
AbstractSpringTemplateFunctionModel {
         final String context = CallableUtils.getOptionalStringArgument(args, 
CONTEXT_PARAM_IDX, this);
 
         List<_KeyValuePair<String, String>> params = Collections.emptyList();
-        final TemplateHashModelEx2 paramsHashModel = (TemplateHashModelEx2) 
args[PARAMS_PARAM_IDX];
+        final int paramsVarargsIndex = 
ARGS_LAYOUT.getNamedVarargsArgumentIndex();
+        final TemplateHashModelEx2 paramsHashModel = (TemplateHashModelEx2) 
args[paramsVarargsIndex];
 
         if (!paramsHashModel.isEmptyHash()) {
             params = new ArrayList<>();
@@ -120,14 +120,14 @@ class UrlFunction extends 
AbstractSpringTemplateFunctionModel {
                 TemplateModel paramValueModel = pair.getValue();
 
                 if (!(paramNameModel instanceof TemplateStringModel)) {
-                    throw 
CallableUtils.newArgumentValueException(PARAMS_PARAM_IDX,
+                    throw 
CallableUtils.newArgumentValueException(paramsVarargsIndex,
                             "Parameter name must be a string.", this);
                 }
 
                 String paramName = ((TemplateStringModel) 
paramNameModel).getAsString();
 
                 if (paramName.isEmpty()) {
-                    throw 
CallableUtils.newArgumentValueException(PARAMS_PARAM_IDX,
+                    throw 
CallableUtils.newArgumentValueException(paramsVarargsIndex,
                             "Parameter name must be a non-blank string.", 
this);
                 }
 
@@ -140,7 +140,7 @@ class UrlFunction extends 
AbstractSpringTemplateFunctionModel {
                 } else if (paramValueModel instanceof TemplateBooleanModel) {
                     paramValue = Boolean.toString(((TemplateBooleanModel) 
paramValueModel).getAsBoolean());
                 } else {
-                    throw 
CallableUtils.newArgumentValueException(PARAMS_PARAM_IDX,
+                    throw 
CallableUtils.newArgumentValueException(paramsVarargsIndex,
                             "Format the parameter manually to properly coerce 
it to a URL parameter value string. "
                                     + "e.g, date?string.iso, date?long, 
list?join('_'), etc.",
                             this);

Reply via email to