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);
