You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/09/13 09:49:11 UTC
[10/36] incubator-freemarker git commit: FREEMARKER-55: read message
args from positioned vargs.
FREEMARKER-55: read message args from positioned vargs.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/8f5eaaaf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/8f5eaaaf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/8f5eaaaf
Branch: refs/heads/3
Commit: 8f5eaaaf2df1914fef461802f2d7b511d4a99870
Parents: 3b83475
Author: Woonsan Ko <wo...@apache.org>
Authored: Sun Sep 3 00:08:31 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Sun Sep 3 00:08:31 2017 -0400
----------------------------------------------------------------------
.../freemarker/spring/model/MessageFunction.java | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8f5eaaaf/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 d440963..7bee8c1 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
@@ -19,6 +19,7 @@
package org.apache.freemarker.spring.model;
+import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -29,7 +30,9 @@ import org.apache.freemarker.core.Environment;
import org.apache.freemarker.core.TemplateException;
import org.apache.freemarker.core.model.ArgumentArrayLayout;
import org.apache.freemarker.core.model.ObjectWrapperAndUnwrapper;
+import org.apache.freemarker.core.model.TemplateCollectionModel;
import org.apache.freemarker.core.model.TemplateModel;
+import org.apache.freemarker.core.model.TemplateModelIterator;
import org.apache.freemarker.core.model.impl.SimpleString;
import org.apache.freemarker.core.util.CallableUtils;
import org.apache.freemarker.core.util.StringToIndexMap;
@@ -41,6 +44,7 @@ public class MessageFunction extends AbstractSpringTemplateFunctionModel {
private static final int CODE_PARAM_IDX = 0;
private static final int MESSAGE_PARAM_IDX = 1;
+ private static final int MESSAGE_ARGS_PARAM_IDX = 2;
private static final String MESSAGE_PARAM_NAME = "message";
@@ -71,8 +75,17 @@ public class MessageFunction extends AbstractSpringTemplateFunctionModel {
final String code = CallableUtils.getStringArgument(args, CODE_PARAM_IDX, this);
if (code != null && !code.isEmpty()) {
+ final TemplateCollectionModel messageArgsModel = (TemplateCollectionModel) args[MESSAGE_ARGS_PARAM_IDX];
List<Object> msgArgumentList = null;
- // TODO: How to read message arguments from the varags?
+
+ if (!messageArgsModel.isEmptyCollection()) {
+ msgArgumentList = new ArrayList<>();
+ TemplateModel msgArgModel;
+ for (TemplateModelIterator tit = messageArgsModel.iterator(); tit.hasNext(); ) {
+ msgArgModel = tit.next();
+ msgArgumentList.add(objectWrapperAndUnwrapper.unwrap(msgArgModel));
+ }
+ }
// TODO: Is it okay to set the default value to null to avoid NoSuchMessageException from Spring MessageSource?
message = messageSource.getMessage(code, (msgArgumentList == null) ? null : msgArgumentList.toArray(),