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/14 09:14:10 UTC
[1/9] incubator-freemarker git commit: FREEMARKER-55: narrow
class/method visibilities as possible.
Repository: incubator-freemarker
Updated Branches:
refs/heads/3 742ed4fee -> f6eebd856
FREEMARKER-55: narrow class/method visibilities as possible.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/40bd07b7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/40bd07b7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/40bd07b7
Branch: refs/heads/3
Commit: 40bd07b718262e30345c082ec4794ab2535b5fd8
Parents: 5f6a917
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 10:49:36 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 10:49:36 2017 -0400
----------------------------------------------------------------------
.../model/AbstractSpringTemplateCallableModel.java | 4 ++--
.../model/AbstractSpringTemplateDirectiveModel.java | 4 ++--
.../model/AbstractSpringTemplateFunctionModel.java | 4 ++--
.../apache/freemarker/spring/model/BindDirective.java | 4 ++--
.../freemarker/spring/model/BindErrorsDirective.java | 4 ++--
.../org/apache/freemarker/spring/model/EvalFunction.java | 6 +++---
.../apache/freemarker/spring/model/MessageFunction.java | 11 ++++++++---
.../freemarker/spring/model/NestedPathDirective.java | 4 ++--
.../spring/model/SpringTemplateCallableHashModel.java | 9 +++++----
.../apache/freemarker/spring/model/ThemeFunction.java | 5 +++--
.../freemarker/spring/model/TransformFunction.java | 6 +++---
.../org/apache/freemarker/spring/model/UrlFunction.java | 6 +++---
12 files changed, 37 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
index 641fbdb..03142d6 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
@@ -34,7 +34,7 @@ import org.springframework.web.servlet.support.RequestContext;
/**
* Abstract TemplateCallableModel for derived classes to support Spring MVC based templating environment.
*/
-public abstract class AbstractSpringTemplateCallableModel implements TemplateCallableModel {
+abstract class AbstractSpringTemplateCallableModel implements TemplateCallableModel {
private final HttpServletRequest request;
private final HttpServletResponse response;
@@ -44,7 +44,7 @@ public abstract class AbstractSpringTemplateCallableModel implements TemplateCal
* @param request servlet request
* @param response servlet response
*/
- public AbstractSpringTemplateCallableModel(HttpServletRequest request, HttpServletResponse response) {
+ protected AbstractSpringTemplateCallableModel(HttpServletRequest request, HttpServletResponse response) {
this.request = request;
this.response = response;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
index 0ce34d0..a02558f 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
@@ -39,7 +39,7 @@ import org.springframework.web.servlet.view.AbstractTemplateView;
/**
* Abstract TemplateDirectiveModel for derived classes to support Spring MVC based templating environment.
*/
-public abstract class AbstractSpringTemplateDirectiveModel extends AbstractSpringTemplateCallableModel
+abstract class AbstractSpringTemplateDirectiveModel extends AbstractSpringTemplateCallableModel
implements TemplateDirectiveModel {
/**
@@ -47,7 +47,7 @@ public abstract class AbstractSpringTemplateDirectiveModel extends AbstractSprin
* @param request servlet request
* @param response servlet response
*/
- public AbstractSpringTemplateDirectiveModel(HttpServletRequest request, HttpServletResponse response) {
+ protected AbstractSpringTemplateDirectiveModel(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
index 137837c..90bd3df 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
@@ -36,7 +36,7 @@ import org.springframework.web.servlet.view.AbstractTemplateView;
/**
* Abstract TemplateFunctionModel for derived classes to support Spring MVC based templating environment.
*/
-public abstract class AbstractSpringTemplateFunctionModel extends AbstractSpringTemplateCallableModel
+abstract class AbstractSpringTemplateFunctionModel extends AbstractSpringTemplateCallableModel
implements TemplateFunctionModel {
/**
@@ -44,7 +44,7 @@ public abstract class AbstractSpringTemplateFunctionModel extends AbstractSpring
* @param request servlet request
* @param response servlet response
*/
- public AbstractSpringTemplateFunctionModel(HttpServletRequest request, HttpServletResponse response) {
+ protected AbstractSpringTemplateFunctionModel(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
index 99f5f86..1a3917c 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindDirective.java
@@ -62,7 +62,7 @@ import org.springframework.web.servlet.support.RequestContext;
* because it is much easier to control escaping in FreeMarker Template expressions.
* </P>
*/
-public class BindDirective extends AbstractSpringTemplateDirectiveModel {
+class BindDirective extends AbstractSpringTemplateDirectiveModel {
public static final String NAME = "bind";
@@ -79,7 +79,7 @@ public class BindDirective extends AbstractSpringTemplateDirectiveModel {
false
);
- public BindDirective(HttpServletRequest request, HttpServletResponse response) {
+ protected BindDirective(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindErrorsDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindErrorsDirective.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindErrorsDirective.java
index 2b73780..2f6a93e 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindErrorsDirective.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/BindErrorsDirective.java
@@ -65,7 +65,7 @@ import org.springframework.web.servlet.support.RequestContext;
* rather than depending on directives.
* </P>
*/
-public class BindErrorsDirective extends AbstractSpringTemplateDirectiveModel {
+class BindErrorsDirective extends AbstractSpringTemplateDirectiveModel {
public static final String NAME = "hasBindErrors";
@@ -79,7 +79,7 @@ public class BindErrorsDirective extends AbstractSpringTemplateDirectiveModel {
false
);
- public BindErrorsDirective(HttpServletRequest request, HttpServletResponse response) {
+ protected BindErrorsDirective(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/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 39d210e..2c257c4 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
@@ -75,7 +75,7 @@ import org.springframework.web.servlet.support.RequestContext;
* because it is much easier to control escaping in FreeMarker Template expressions.
* </P>
*/
-public class EvalFunction extends AbstractSpringTemplateFunctionModel {
+class EvalFunction extends AbstractSpringTemplateFunctionModel {
public static final String NAME = "eval";
@@ -93,12 +93,12 @@ public class EvalFunction extends AbstractSpringTemplateFunctionModel {
private final ExpressionParser expressionParser = new SpelExpressionParser();
- public EvalFunction(HttpServletRequest request, HttpServletResponse response) {
+ protected EvalFunction(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
@Override
- public TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
+ protected TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper, RequestContext requestContext)
throws TemplateException {
final String expressionString = CallableUtils.getStringArgument(args, EXPRESSION_PARAM_IDX, this);
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/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 f30e07b..c7b6db5 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
@@ -74,7 +74,7 @@ import org.springframework.web.servlet.support.RequestContext;
* because it is much easier to control escaping in FreeMarker Template expressions.
* </P>
*/
-public class MessageFunction extends AbstractSpringTemplateFunctionModel {
+class MessageFunction extends AbstractSpringTemplateFunctionModel {
public static final String NAME = "message";
@@ -92,12 +92,12 @@ public class MessageFunction extends AbstractSpringTemplateFunctionModel {
false
);
- public MessageFunction(HttpServletRequest request, HttpServletResponse response) {
+ protected MessageFunction(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
@Override
- public TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
+ protected TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper, RequestContext requestContext)
throws TemplateException {
final MessageSource messageSource = getMessageSource(requestContext);
@@ -149,6 +149,11 @@ public class MessageFunction extends AbstractSpringTemplateFunctionModel {
return ARGS_LAYOUT;
}
+ /**
+ * Get the {@link MessageSource} bean from the current application context.
+ * @param requestContext Spring Framework RequestContext
+ * @return the {@link MessageSource} bean from the current application context
+ */
protected MessageSource getMessageSource(final RequestContext requestContext) {
return requestContext.getMessageSource();
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/NestedPathDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/NestedPathDirective.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/NestedPathDirective.java
index b24dfaf..43788f6 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/NestedPathDirective.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/NestedPathDirective.java
@@ -54,7 +54,7 @@ import org.springframework.web.servlet.support.RequestContext;
* </@spring.nestedPath>
* </PRE>
*/
-public class NestedPathDirective extends AbstractSpringTemplateDirectiveModel {
+class NestedPathDirective extends AbstractSpringTemplateDirectiveModel {
public static final String NAME = "nestedPath";
@@ -68,7 +68,7 @@ public class NestedPathDirective extends AbstractSpringTemplateDirectiveModel {
false
);
- public NestedPathDirective(HttpServletRequest request, HttpServletResponse response) {
+ protected NestedPathDirective(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
index 4e42923..8afb4ab 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
@@ -68,6 +68,7 @@ public final class SpringTemplateCallableHashModel implements TemplateHashModel,
modelsMap.put(EvalFunction.NAME, new EvalFunction(request, response));
}
+ @Override
public TemplateModel get(String key) throws TemplateException {
return modelsMap.get(key);
}
@@ -77,19 +78,19 @@ public final class SpringTemplateCallableHashModel implements TemplateHashModel,
return false;
}
- public TemplateStringModel getNestedPathModel() throws TemplateException {
+ TemplateStringModel getNestedPathModel() throws TemplateException {
return (TemplateStringModel) get(NESTED_PATH_MODEL);
}
- public void setNestedPathModel(TemplateStringModel nestedPathModel) {
+ void setNestedPathModel(TemplateStringModel nestedPathModel) {
modelsMap.put(NESTED_PATH_MODEL, nestedPathModel);
}
- public TemplateModel getEvaluationContextModel() throws TemplateException {
+ TemplateModel getEvaluationContextModel() throws TemplateException {
return (TemplateModel) get(EVALUATION_CONTEXT_MODEL);
}
- public void setEvaluationContextModel(TemplateModel evaluationContextModel) {
+ void setEvaluationContextModel(TemplateModel evaluationContextModel) {
modelsMap.put(EVALUATION_CONTEXT_MODEL, evaluationContextModel);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/ThemeFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/ThemeFunction.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/ThemeFunction.java
index 4f201ad..ca457a7 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/ThemeFunction.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/ThemeFunction.java
@@ -57,14 +57,15 @@ import org.springframework.web.servlet.support.RequestContext;
* because it is much easier to control escaping in FreeMarker Template expressions.
* </P>
*/
-public class ThemeFunction extends MessageFunction {
+class ThemeFunction extends MessageFunction {
public static final String NAME = "theme";
- public ThemeFunction(HttpServletRequest request, HttpServletResponse response) {
+ protected ThemeFunction(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
+ @Override
protected MessageSource getMessageSource(final RequestContext requestContext) {
return requestContext.getTheme().getMessageSource();
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
index 6110652..96258a7 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
@@ -50,7 +50,7 @@ import org.springframework.web.servlet.support.RequestContext;
* because it is much easier to control escaping in FreeMarker Template expressions.
* </P>
*/
-public class TransformFunction extends AbstractSpringTemplateFunctionModel {
+class TransformFunction extends AbstractSpringTemplateFunctionModel {
public static final String NAME = "transform";
@@ -65,12 +65,12 @@ public class TransformFunction extends AbstractSpringTemplateFunctionModel {
false
);
- public TransformFunction(HttpServletRequest request, HttpServletResponse response) {
+ protected TransformFunction(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
@Override
- public TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
+ protected TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper, RequestContext requestContext)
throws TemplateException {
final TemplateModel editorModel = CallableUtils.getOptionalArgument(args, PROPERTY_EDITOR_PARAM_IDX,
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40bd07b7/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 47c83ab..908b3de 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
@@ -68,7 +68,7 @@ import org.springframework.web.util.UriUtils;
* because it is much easier to control escaping in FreeMarker Template expressions.
* </P>
*/
-public class UrlFunction extends AbstractSpringTemplateFunctionModel {
+class UrlFunction extends AbstractSpringTemplateFunctionModel {
public static final String NAME = "url";
@@ -95,12 +95,12 @@ public class UrlFunction extends AbstractSpringTemplateFunctionModel {
true
);
- public UrlFunction(HttpServletRequest request, HttpServletResponse response) {
+ protected UrlFunction(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
@Override
- public TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
+ protected TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper, RequestContext requestContext)
throws TemplateException {
final String value = CallableUtils.getStringArgument(args, VALUE_PARAM_IDX, this);
[3/9] incubator-freemarker git commit: FREEMARKER-55: simplifying
test examples with no interim vars
Posted by dd...@apache.org.
FREEMARKER-55: simplifying test examples with no interim vars
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/f6abc305
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/f6abc305
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/f6abc305
Branch: refs/heads/3
Commit: f6abc3054e1fb571c221d874c2c2ed37bb8ecf7c
Parents: 3f6ee18
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 12:21:10 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 12:21:10 2017 -0400
----------------------------------------------------------------------
.../test/model/eval-function-basic-usages.ftl | 15 +++++---------
.../test/model/url-function-basic-usages.ftl | 21 +++++++-------------
2 files changed, 12 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/f6abc305/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
index b5b1dd6..2498b5f 100644
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
@@ -20,26 +20,21 @@
<html>
<body>
-<#assign expression="T(java.lang.Math).max(12.34, 56.78)" />
-<div id="maxNumber">${spring.eval(expression)}</div>
+<div id="maxNumber">${spring.eval("T(java.lang.Math).max(12.34, 56.78)")}</div>
<ul>
<#list users as user>
<li>
- <#assign expression="user.id" />
- <div id="user-${spring.eval(expression)!}">
- <#assign expression="user.firstName + ' ' + user.lastName" />
- ${spring.eval(expression)!}
+ <div id="user-${spring.eval('user.id')!}">
+ ${spring.eval("user.firstName + ' ' + user.lastName")!}
</div>
</li>
</#list>
</ul>
-<#assign expression="users[0].id" />
-<div id="firstUserId">${spring.eval(expression)!}</div>
+<div id="firstUserId">${spring.eval("users[0].id")!}</div>
-<#assign expression="{0,1,1,2,3,5,8,13}" />
-<#assign numbers=spring.eval(expression) />
+<#assign numbers=spring.eval("{0,1,1,2,3,5,8,13}") />
<div id="fibonacci"><#list numbers as number>${number}<#sep>, </#list></div>
</body>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/f6abc305/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
index 870ba3c..cd8ff79 100644
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
@@ -21,41 +21,34 @@
<body>
<h2 id="usersListHeader">
- <#assign pathInfo="/users/" />
- <a href="${spring.url(pathInfo)}">Users List</a>
+ <a href="${spring.url('/users/')}">Users List</a>
</h2>
<h3 id="usersListHeaderWithSortParams">
- <#assign pathInfo="/users/" />
- <a href="${spring.url(pathInfo, sortField='birthDate', sortDirection='descending')}">Users List</a>
+ <a href="${spring.url('/users/', sortField='birthDate', sortDirection='descending')}">Users List</a>
</h3>
<h2 id="otherAppsUsersListHeader">
- <#assign pathInfo="/users/" />
- <a href="${spring.url(pathInfo, context='/otherapp')}">Users List</a>
+ <a href="${spring.url('/users/', context='/otherapp')}">Users List</a>
</h2>
<h3 id="otherAppsUsersListHeaderWithSortParams">
- <#assign pathInfo="/users/" />
- <a href="${spring.url(pathInfo, context='/otherapp', sortField='birthDate', sortDirection='descending')}">Users List</a>
+ <a href="${spring.url('/users/', context='/otherapp', sortField='birthDate', sortDirection='descending')}">Users List</a>
</h3>
<ul>
<#list users as user>
<li>
<div id="user-${user.id!}">
- <#assign pathInfo="/users/{userId}/" />
- <a class="userIdLink" href="${spring.url(pathInfo, userId=user.id?string)}">${user.id!}</a>
- <#assign pathInfo="/users/${user.id}/" />
- <a class="userNameLink" href="${spring.url(pathInfo)}">${user.firstName!} ${user.lastName!}</a>
+ <a class="userIdLink" href="${spring.url('/users/{userId}/', userId=user.id?string)}">${user.id!}</a>
+ <a class="userNameLink" href="${spring.url('/users/${user.id}/')}">${user.firstName!} ${user.lastName!}</a>
</div>
</li>
</#list>
</ul>
<div id="freeMarkerManualUrl">
- <#assign pathInfo="http://freemarker.org/docs/index.html" />
- <a href="${spring.url(pathInfo)}">Apache FreeMarker Manual</a>
+ <a href="${spring.url('http://freemarker.org/docs/index.html')}">Apache FreeMarker Manual</a>
</div>
</body>
[7/9] incubator-freemarker git commit: Merge branch '3' into
feature/FREEMARKER-55-2
Posted by dd...@apache.org.
Merge branch '3' into feature/FREEMARKER-55-2
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/ba180d03
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/ba180d03
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/ba180d03
Branch: refs/heads/3
Commit: ba180d0337358fe2136b5a059cbfb98bd1ac6900
Parents: ed955ce 742ed4f
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 21:36:54 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 21:36:54 2017 -0400
----------------------------------------------------------------------
.../freemarker/core/ASTDollarInterpolation.java | 2 +-
.../freemarker/core/ASTExpAddOrConcat.java | 4 +--
.../apache/freemarker/core/ASTExpression.java | 8 +++---
.../core/BuiltInForLegacyEscaping.java | 2 +-
.../core/BuiltInsForOutputFormatRelated.java | 2 +-
.../freemarker/core/BuiltInsForSequences.java | 2 +-
.../org/apache/freemarker/core/Environment.java | 28 ++++++++++++++++++++
.../org/apache/freemarker/core/_EvalUtils.java | 12 ++++-----
8 files changed, 44 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
[6/9] incubator-freemarker git commit: FREEMARKER-55: fixing javadocs
Posted by dd...@apache.org.
FREEMARKER-55: fixing javadocs
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/ed955cee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/ed955cee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/ed955cee
Branch: refs/heads/3
Commit: ed955cee700fc162568ae944cc6db516ebcd092c
Parents: 3c25f7a
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 21:35:06 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 21:35:06 2017 -0400
----------------------------------------------------------------------
.../spring/SpringResourceTemplateLoader.java | 19 ++++---------------
.../spring/web/view/PageContextServlet.java | 4 ++--
2 files changed, 6 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ed955cee/freemarker-spring/src/main/java/org/apache/freemarker/spring/SpringResourceTemplateLoader.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/SpringResourceTemplateLoader.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/SpringResourceTemplateLoader.java
index bf430b7..c8bee0b 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/SpringResourceTemplateLoader.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/SpringResourceTemplateLoader.java
@@ -54,7 +54,8 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
private ResourceLoader resourceLoader;
/**
- * Base resource location which can be prepended to the template name internally when resolving a resource.
+ * Return base resource location which can be prepended to the template name internally when resolving a resource.
+ * @return base resource location which can be prepended to the template name internally when resolving a resource
*/
public String getBaseLocation() {
return baseLocation;
@@ -62,31 +63,22 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
/**
* Set base resource location which can be prepended to the template name internally when resolving a resource.
- * @param baseLocation
+ * @param baseLocation base resource location which can be prepended to the template name internally when resolving a resource
*/
public void setBaseLocation(String baseLocation) {
this.baseLocation = baseLocation;
}
- /**
- * {@inheritDoc}
- */
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
- /**
- * {@inheritDoc}
- */
@Override
public TemplateLoaderSession createSession() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
public TemplateLoadingResult load(String name, TemplateLoadingSource ifSourceDiffersFrom,
Serializable ifVersionDiffersFrom, TemplateLoaderSession session) throws IOException {
@@ -129,12 +121,9 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
return new TemplateLoadingResult(source, version, resource.getInputStream(), null);
}
- /**
- * {@inheritDoc}
- */
@Override
public void resetState() {
- // Does nothing
+ // Do nothing
}
@SuppressWarnings("serial")
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ed955cee/freemarker-spring/src/main/java/org/apache/freemarker/spring/web/view/PageContextServlet.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/web/view/PageContextServlet.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/web/view/PageContextServlet.java
index 7b8e923..97f4321 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/web/view/PageContextServlet.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/web/view/PageContextServlet.java
@@ -27,8 +27,8 @@ import javax.servlet.ServletResponse;
/**
* A built-in internal servlet class to be used as page object in JSP tag libraries used in FreeMarker templates.
- *
- * @see javax.servlet.jsp.PageContext#getPage()
+ * JSP Tag Library implementations may invoke <code>javax.servlet.jsp.PageContext#getPage()</code> to get the
+ * reference of the servlet. So, this internal servlet implementation is provided for that.
*/
@SuppressWarnings("serial")
final class PageContextServlet extends GenericServlet {
[8/9] incubator-freemarker git commit: FREEMARKER-55: use
Environment.formatToPlainText(model) if param value in url function is not
string model.
Posted by dd...@apache.org.
FREEMARKER-55: use Environment.formatToPlainText(model) if param value in url function is not string model.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/7c6f56cb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/7c6f56cb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/7c6f56cb
Branch: refs/heads/3
Commit: 7c6f56cb1f6d9576c6e4b5d30ba700cb3c23b3ba
Parents: ba180d0
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 21:57:47 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 21:57:47 2017 -0400
----------------------------------------------------------------------
.../org/apache/freemarker/spring/model/UrlFunction.java | 12 ++++++++----
.../views/test/model/url-function-basic-usages.ftl | 2 +-
2 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7c6f56cb/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 908b3de..e2986a9 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
@@ -123,20 +123,24 @@ class UrlFunction extends AbstractSpringTemplateFunctionModel {
paramNameModel = pair.getKey();
paramValueModel = pair.getValue();
- if ((paramNameModel instanceof TemplateStringModel)
- && (paramValueModel instanceof TemplateStringModel)) {
+ if (paramNameModel instanceof TemplateStringModel) {
paramName = ((TemplateStringModel) paramNameModel).getAsString();
- paramValue = ((TemplateStringModel) paramValueModel).getAsString();
if (paramName.isEmpty()) {
CallableUtils.newArgumentValueException(PARAMS_PARAM_IDX,
"Parameter name must be a non-blank string.", this);
}
+ if (paramValueModel instanceof TemplateStringModel) {
+ paramValue = ((TemplateStringModel) paramValueModel).getAsString();
+ } else {
+ paramValue = env.formatToPlainText(paramValueModel);
+ }
+
params.add(new _KeyValuePair<String, String>(paramName, paramValue));
} else {
CallableUtils.newArgumentValueException(PARAMS_PARAM_IDX,
- "Parameter name and value must be string.", this);
+ "Parameter name must be string.", this);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7c6f56cb/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
index cd8ff79..e25a2d5 100644
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
@@ -40,7 +40,7 @@
<#list users as user>
<li>
<div id="user-${user.id!}">
- <a class="userIdLink" href="${spring.url('/users/{userId}/', userId=user.id?string)}">${user.id!}</a>
+ <a class="userIdLink" href="${spring.url('/users/{userId}/', userId=user.id)}">${user.id!}</a>
<a class="userNameLink" href="${spring.url('/users/${user.id}/')}">${user.firstName!} ${user.lastName!}</a>
</div>
</li>
[2/9] incubator-freemarker git commit: FREEMARKER-55: introducing
CallableUtils#getAndUnwrap...(...) utils.
Posted by dd...@apache.org.
FREEMARKER-55: introducing CallableUtils#getAndUnwrap...(...) utils.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/3f6ee183
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/3f6ee183
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/3f6ee183
Branch: refs/heads/3
Commit: 3f6ee183ab87e193c4eaa465652d5d8b204cd992
Parents: 40bd07b
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 12:14:08 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 12:14:08 2017 -0400
----------------------------------------------------------------------
.../freemarker/core/util/CallableUtils.java | 153 +++++++++++++++++++
.../AbstractSpringTemplateCallableModel.java | 46 ++++++
.../AbstractSpringTemplateDirectiveModel.java | 23 +--
.../AbstractSpringTemplateFunctionModel.java | 23 +--
.../freemarker/spring/model/EvalFunction.java | 2 +-
.../spring/model/MessageFunction.java | 6 +-
.../model/SpringTemplateCallableHashModel.java | 4 +-
.../spring/model/TransformFunction.java | 12 +-
8 files changed, 214 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
index 9bf96e2..0c8f09f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
@@ -35,6 +35,7 @@ import org.apache.freemarker.core._ErrorDescriptionBuilder;
import org.apache.freemarker.core._EvalUtils;
import org.apache.freemarker.core._UnexpectedTypeErrorExplainerTemplateModel;
import org.apache.freemarker.core.model.ArgumentArrayLayout;
+import org.apache.freemarker.core.model.ObjectWrapperAndUnwrapper;
import org.apache.freemarker.core.model.TemplateBooleanModel;
import org.apache.freemarker.core.model.TemplateCallableModel;
import org.apache.freemarker.core.model.TemplateDirectiveModel;
@@ -302,6 +303,20 @@ public final class CallableUtils {
return desc;
}
+ private static _ErrorDescriptionBuilder getMessageBadGenericArgumentType(
+ Object argValue, int argIdx, Class<? extends TemplateModel>[] expectedTypes,
+ String expectedTypesDesc, TemplateCallableModel callable,
+ boolean calledAsFunction) {
+ _ErrorDescriptionBuilder desc = new _ErrorDescriptionBuilder(
+ getMessageArgumentProblem(
+ callable, argIdx,
+ new Object[]{ "should be ", new _DelayedAOrAn(expectedTypesDesc), ", but was ",
+ new _DelayedAOrAn(argValue.getClass()),
+ "." },
+ calledAsFunction));
+ return desc;
+ }
+
public static void executeWith0Arguments(
TemplateDirectiveModel directive, CallPlace callPlace, Writer out, Environment env)
throws IOException, TemplateException {
@@ -717,6 +732,144 @@ public final class CallableUtils {
calledAsFunction);
}
+ // getAndUnwrapArgument(...)'s and getOptionalAndUnwrapArgument(...)'s
+
+ /**
+ * Convenience method to call
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ */
+ public static <T> T getAndUnwrapArgument(
+ TemplateModel[] args, int argIndex, Class<T> type, TemplateFunctionModel callable,
+ ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ return unwrapAndCastArgumentValue(args[argIndex], argIndex, type, false, null, callable, true,
+ objectWrapperAndUnwrapper);
+ }
+
+ /**
+ * Convenience method to call
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ */
+ public static <T> T getAndUnwrapArgument(
+ TemplateModel[] args, int argIndex, Class<T> type, TemplateDirectiveModel callable,
+ ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ return unwrapAndCastArgumentValue(args[argIndex], argIndex, type, false, null, callable, false,
+ objectWrapperAndUnwrapper);
+ }
+
+ /**
+ * Convenience method to call
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ */
+ public static <T> T getOptionalAndUnwrapArgument(
+ TemplateModel[] args, int argIndex, Class<T> type, TemplateFunctionModel callable,
+ ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ return unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, null, callable, true,
+ objectWrapperAndUnwrapper);
+ }
+
+ /**
+ * Convenience method to call
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ */
+ public static <T> T getOptionalAndUnwrapArgument(
+ TemplateModel[] args, int argIndex, Class<T> type, TemplateDirectiveModel callable,
+ ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ return unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, null, callable, false,
+ objectWrapperAndUnwrapper);
+ }
+
+ /**
+ * Convenience method to call
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ */
+ public static <T> T getOptionalAndUnwrapArgument(
+ TemplateModel[] args, int argIndex, Class<T> type, T defaultValue, TemplateFunctionModel callable,
+ ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ return unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, defaultValue, callable, true,
+ objectWrapperAndUnwrapper);
+ }
+
+ /**
+ * Convenience method to call
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ */
+ public static <T> T getOptionalAndUnwrapArgument(
+ TemplateModel[] args, int argIndex, Class<T> type, T defaultValue, TemplateDirectiveModel callable,
+ ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ return unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, defaultValue, callable, false,
+ objectWrapperAndUnwrapper);
+ }
+
+ /**
+ * Unwrap the argument to a plain Java object first and checks if the argument value is of the proper type,
+ * also, if it's {@code null}/omitted, in which case it can throw an exception or return a default value.
+ * <p>
+ * The point of this method is not only to decrease the boiler plate needed for these common checks, but also to
+ * standardize the error message content. If the checks themselves don't fit your needs, you should still use {@link
+ * #newArgumentValueTypeException(TemplateModel, int, Class, TemplateCallableModel, boolean)} and its overloads,
+ * also {@link #newNullOrOmittedArgumentException(int, TemplateCallableModel, boolean)} and its overloads to
+ * generate similar error messages.
+ *
+ * @param argValue
+ * The argument value at the position of {@code argIdx}.
+ * @param argIdx
+ * The index in the {@code args} array (assumed to be a valid index. This is information is needed for
+ * proper error messages.
+ * @param type
+ * The expected class of the unwrapped argument as plain Java object (not a {@link TemplateModel} subinterface).
+ * {@code null} if there are no type restrictions.
+ * @param optional
+ * If we allow the parameter to be {@code null} or omitted.
+ * @param defaultValue
+ * The value to return if the parameter was {@code null} or omitted.
+ * @param callable
+ * The {@link TemplateCallableModel} whose argument we cast; required for printing proper error message.
+ * @param calledAsFunction
+ * Tells if the {@code callable} was called as function (as opposed to called as a directive). This
+ * information is needed because a {@link TemplateCallableModel} might implements both {@link
+ * TemplateFunctionModel} and {@link TemplateDirectiveModel}, in which case this method couldn't tell if the
+ * argument of which we are casting.
+ * @param objectWrapperAndUnwrapper
+ * The ObjectWrapperAndUnwrapper instance to use when unwrapping the argument to a plain Java object.
+ *
+ * @return The argument value of the proper type.
+ *
+ * @throws TemplateException
+ * If the argument is not of the proper type or is non-optional yet {@code null}/omitted. The error message
+ * describes the problem in detail, and is meant to be shown for the template author.
+ */
+ public static <T> T unwrapAndCastArgumentValue(
+ TemplateModel argValue, int argIdx, Class<T> type,
+ boolean optional, T defaultValue, TemplateCallableModel callable,
+ boolean calledAsFunction, ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
+ throws TemplateException {
+ if (objectWrapperAndUnwrapper == null) {
+ throw newGenericExecuteException("ObjectWrapperAndUnwrapper shouldn't be null.", callable,
+ calledAsFunction);
+ }
+ final Object argValueObject = (argValue != null) ? objectWrapperAndUnwrapper.unwrap(argValue) : null;
+ if (argValueObject == null) {
+ if (optional) {
+ return defaultValue;
+ }
+ throw newNullOrOmittedArgumentException(argIdx, callable, calledAsFunction);
+ }
+ if (type == null || type.isInstance(argValueObject)) {
+ return (T) argValueObject;
+ }
+ throw new TemplateException(
+ getMessageBadGenericArgumentType(argValue, argIdx,
+ new Class[] { type },
+ type.getName(),
+ callable, calledAsFunction));
+ }
+
// Other type of arg:
/**
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
index 03142d6..1c3d71b 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateCallableModel.java
@@ -24,12 +24,16 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.freemarker.core.Environment;
import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.ObjectWrapper;
import org.apache.freemarker.core.model.ObjectWrapperAndUnwrapper;
import org.apache.freemarker.core.model.TemplateCallableModel;
+import org.apache.freemarker.core.model.TemplateFunctionModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateStringModel;
+import org.apache.freemarker.core.util.CallableUtils;
import org.springframework.web.servlet.support.BindStatus;
import org.springframework.web.servlet.support.RequestContext;
+import org.springframework.web.servlet.view.AbstractTemplateView;
/**
* Abstract TemplateCallableModel for derived classes to support Spring MVC based templating environment.
@@ -66,6 +70,48 @@ abstract class AbstractSpringTemplateCallableModel implements TemplateCallableMo
}
/**
+ * Find {@link ObjectWrapperAndUnwrapper} from the environment.
+ * @param env environment
+ * @param calledAsFunction whether or not this is called from a {@link TemplateFunctionModel}.
+ * @return {@link ObjectWrapperAndUnwrapper} from the environment
+ * @throws TemplateException if the ObjectWrapper in the environment is not an ObjectWrapperAndUnwrapper
+ */
+ protected ObjectWrapperAndUnwrapper getObjectWrapperAndUnwrapper(Environment env, boolean calledAsFunction)
+ throws TemplateException {
+ final ObjectWrapper objectWrapper = env.getObjectWrapper();
+
+ if (!(objectWrapper instanceof ObjectWrapperAndUnwrapper)) {
+ CallableUtils.newGenericExecuteException(
+ "The ObjectWrapper of environment isn't an instance of ObjectWrapperAndUnwrapper.", this,
+ calledAsFunction);
+ }
+
+ return (ObjectWrapperAndUnwrapper) objectWrapper;
+ }
+
+ /**
+ * Find Spring {@link RequestContext} from the environment.
+ * @param env environment
+ * @param calledAsFunction whether or not this is called from a {@link TemplateFunctionModel}.
+ * @return Spring {@link RequestContext} from the environment
+ * @throws TemplateException if Spring {@link RequestContext} from the environment is not found
+ */
+ protected RequestContext getRequestContext(final Environment env, boolean calledAsFunction)
+ throws TemplateException {
+ TemplateModel rcModel = env.getVariable(AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
+
+ if (rcModel == null) {
+ CallableUtils.newGenericExecuteException(
+ AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE + " not found.", this, false);
+ }
+
+ RequestContext requestContext = (RequestContext) getObjectWrapperAndUnwrapper(env, calledAsFunction)
+ .unwrap(rcModel);
+
+ return requestContext;
+ }
+
+ /**
* Find {@link BindStatus} with no {@code htmlEscape} option from {@link RequestContext} by the {@code path}
* and wrap it as a {@link TemplateModel}.
* <P>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
index a02558f..c91b387 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateDirectiveModel.java
@@ -28,13 +28,10 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.freemarker.core.CallPlace;
import org.apache.freemarker.core.Environment;
import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.model.ObjectWrapper;
import org.apache.freemarker.core.model.ObjectWrapperAndUnwrapper;
import org.apache.freemarker.core.model.TemplateDirectiveModel;
import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.util.CallableUtils;
import org.springframework.web.servlet.support.RequestContext;
-import org.springframework.web.servlet.view.AbstractTemplateView;
/**
* Abstract TemplateDirectiveModel for derived classes to support Spring MVC based templating environment.
@@ -61,23 +58,9 @@ abstract class AbstractSpringTemplateDirectiveModel extends AbstractSpringTempla
@Override
public final void execute(TemplateModel[] args, CallPlace callPlace, Writer out, Environment env)
throws TemplateException, IOException {
- final ObjectWrapper objectWrapper = env.getObjectWrapper();
-
- if (!(objectWrapper instanceof ObjectWrapperAndUnwrapper)) {
- CallableUtils.newGenericExecuteException(
- "The ObjectWrapper of environment isn't an instance of ObjectWrapperAndUnwrapper.", this, false);
- }
-
- TemplateModel rcModel = env.getVariable(AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
-
- if (rcModel == null) {
- CallableUtils.newGenericExecuteException(
- AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE + " not found.", this, false);
- }
-
- RequestContext requestContext = (RequestContext) ((ObjectWrapperAndUnwrapper) objectWrapper).unwrap(rcModel);
-
- executeInternal(args, callPlace, out, env, (ObjectWrapperAndUnwrapper) objectWrapper, requestContext);
+ final ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper = getObjectWrapperAndUnwrapper(env, false);
+ final RequestContext requestContext = getRequestContext(env, false);
+ executeInternal(args, callPlace, out, env, objectWrapperAndUnwrapper, requestContext);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
index 90bd3df..afb3262 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/AbstractSpringTemplateFunctionModel.java
@@ -25,13 +25,10 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.freemarker.core.CallPlace;
import org.apache.freemarker.core.Environment;
import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.model.ObjectWrapper;
import org.apache.freemarker.core.model.ObjectWrapperAndUnwrapper;
import org.apache.freemarker.core.model.TemplateFunctionModel;
import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.util.CallableUtils;
import org.springframework.web.servlet.support.RequestContext;
-import org.springframework.web.servlet.view.AbstractTemplateView;
/**
* Abstract TemplateFunctionModel for derived classes to support Spring MVC based templating environment.
@@ -57,23 +54,9 @@ abstract class AbstractSpringTemplateFunctionModel extends AbstractSpringTemplat
*/
@Override
public TemplateModel execute(TemplateModel[] args, CallPlace callPlace, Environment env) throws TemplateException {
- final ObjectWrapper objectWrapper = env.getObjectWrapper();
-
- if (!(objectWrapper instanceof ObjectWrapperAndUnwrapper)) {
- CallableUtils.newGenericExecuteException(
- "The ObjectWrapper of environment isn't an instance of ObjectWrapperAndUnwrapper.", this, true);
- }
-
- TemplateModel rcModel = env.getVariable(AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
-
- if (rcModel == null) {
- CallableUtils.newGenericExecuteException(
- AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE + " not found.", this, true);
- }
-
- RequestContext requestContext = (RequestContext) ((ObjectWrapperAndUnwrapper) objectWrapper).unwrap(rcModel);
-
- return executeInternal(args, callPlace, env, (ObjectWrapperAndUnwrapper) objectWrapper, requestContext);
+ final ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper = getObjectWrapperAndUnwrapper(env, true);
+ final RequestContext requestContext = getRequestContext(env, true);
+ return executeInternal(args, callPlace, env, objectWrapperAndUnwrapper, requestContext);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/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 2c257c4..4710f6d 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
@@ -106,7 +106,7 @@ class EvalFunction extends AbstractSpringTemplateFunctionModel {
EvaluationContext evaluationContext = null;
final SpringTemplateCallableHashModel springTemplateModel = getSpringTemplateCallableHashModel(env);
- TemplateModel evaluationContextModel = springTemplateModel.get(EVALUATION_CONTEXT_VAR_NAME);
+ TemplateModel evaluationContextModel = springTemplateModel.getEvaluationContextModel();
if (evaluationContextModel != null) {
evaluationContext = (EvaluationContext) objectWrapperAndUnwrapper.unwrap(evaluationContextModel);
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/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 c7b6db5..7ce8d40 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
@@ -108,10 +108,8 @@ class MessageFunction extends AbstractSpringTemplateFunctionModel {
String message = null;
- final TemplateModel messageResolvableModel = CallableUtils.getOptionalArgument(args,
- MESSAGE_RESOLVABLE_PARAM_IDX, TemplateModel.class, this);
- final MessageSourceResolvable messageResolvable = (messageResolvableModel != null)
- ? (MessageSourceResolvable) objectWrapperAndUnwrapper.unwrap(messageResolvableModel) : null;
+ final MessageSourceResolvable messageResolvable = CallableUtils.getOptionalAndUnwrapArgument(args,
+ MESSAGE_RESOLVABLE_PARAM_IDX, MessageSourceResolvable.class, this, objectWrapperAndUnwrapper);
if (messageResolvable != null) {
message = messageSource.getMessage(messageResolvable, requestContext.getLocale());
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
index 8afb4ab..40f7d59 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/SpringTemplateCallableHashModel.java
@@ -48,12 +48,12 @@ public final class SpringTemplateCallableHashModel implements TemplateHashModel,
* in Spring Framework JSP tag libraries.
*/
// NOTE: The model name, "nestedPathModel", must be different from the "nestedPath" directive model's name.
- public static final String NESTED_PATH_MODEL = "nestedPathModel";
+ private static final String NESTED_PATH_MODEL = "nestedPathModel";
/**
* Name of the internal evaluation context template model used by <code>EvalFunction</code> to cache <code>EvaluationContext</code>.
*/
- public static final String EVALUATION_CONTEXT_MODEL = "evaluationContextModel";
+ private static final String EVALUATION_CONTEXT_MODEL = "evaluationContextModel";
private Map<String, TemplateModel> modelsMap = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f6ee183/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
index 96258a7..cac1dd6 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
@@ -73,14 +73,10 @@ class TransformFunction extends AbstractSpringTemplateFunctionModel {
protected TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper, RequestContext requestContext)
throws TemplateException {
- final TemplateModel editorModel = CallableUtils.getOptionalArgument(args, PROPERTY_EDITOR_PARAM_IDX,
- TemplateModel.class, this);
- final PropertyEditor editor = (editorModel != null)
- ? (PropertyEditor) objectWrapperAndUnwrapper.unwrap(editorModel) : null;
-
- final TemplateModel valueModel = CallableUtils.getOptionalArgument(args, VALUE_PARAM_IDX, TemplateModel.class,
- this);
- final Object value = (valueModel != null) ? objectWrapperAndUnwrapper.unwrap(valueModel) : null;
+ final PropertyEditor editor = CallableUtils.getOptionalAndUnwrapArgument(args, PROPERTY_EDITOR_PARAM_IDX,
+ PropertyEditor.class, this, objectWrapperAndUnwrapper);
+ final Object value = CallableUtils.getOptionalAndUnwrapArgument(args, VALUE_PARAM_IDX,
+ null, this, objectWrapperAndUnwrapper);
String valueAsString = null;
[4/9] incubator-freemarker git commit: FREEMARKER-55: renaming util
methods to get*ArgumentAndUnwrap()
Posted by dd...@apache.org.
FREEMARKER-55: renaming util methods to get*ArgumentAndUnwrap()
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/a95c17f9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/a95c17f9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/a95c17f9
Branch: refs/heads/3
Commit: a95c17f9070b9a720fd4577ddf1506681840e295
Parents: f6abc30
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 21:15:41 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 21:15:41 2017 -0400
----------------------------------------------------------------------
.../org/apache/freemarker/core/util/CallableUtils.java | 10 +++++-----
.../apache/freemarker/spring/model/MessageFunction.java | 2 +-
.../apache/freemarker/spring/model/TransformFunction.java | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/a95c17f9/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
index 0c8f09f..8f53df1 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
@@ -750,7 +750,7 @@ public final class CallableUtils {
* Convenience method to call
* {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
*/
- public static <T> T getAndUnwrapArgument(
+ public static <T> T getArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, TemplateDirectiveModel callable,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
throws TemplateException {
@@ -762,7 +762,7 @@ public final class CallableUtils {
* Convenience method to call
* {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
*/
- public static <T> T getOptionalAndUnwrapArgument(
+ public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, TemplateFunctionModel callable,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
throws TemplateException {
@@ -774,7 +774,7 @@ public final class CallableUtils {
* Convenience method to call
* {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
*/
- public static <T> T getOptionalAndUnwrapArgument(
+ public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, TemplateDirectiveModel callable,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
throws TemplateException {
@@ -786,7 +786,7 @@ public final class CallableUtils {
* Convenience method to call
* {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
*/
- public static <T> T getOptionalAndUnwrapArgument(
+ public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, T defaultValue, TemplateFunctionModel callable,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
throws TemplateException {
@@ -798,7 +798,7 @@ public final class CallableUtils {
* Convenience method to call
* {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
*/
- public static <T> T getOptionalAndUnwrapArgument(
+ public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, T defaultValue, TemplateDirectiveModel callable,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper)
throws TemplateException {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/a95c17f9/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 7ce8d40..3755849 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
@@ -108,7 +108,7 @@ class MessageFunction extends AbstractSpringTemplateFunctionModel {
String message = null;
- final MessageSourceResolvable messageResolvable = CallableUtils.getOptionalAndUnwrapArgument(args,
+ final MessageSourceResolvable messageResolvable = CallableUtils.getOptionalArgumentAndUnwrap(args,
MESSAGE_RESOLVABLE_PARAM_IDX, MessageSourceResolvable.class, this, objectWrapperAndUnwrapper);
if (messageResolvable != null) {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/a95c17f9/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
index cac1dd6..f76cc4b 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/model/TransformFunction.java
@@ -73,9 +73,9 @@ class TransformFunction extends AbstractSpringTemplateFunctionModel {
protected TemplateModel executeInternal(TemplateModel[] args, CallPlace callPlace, Environment env,
ObjectWrapperAndUnwrapper objectWrapperAndUnwrapper, RequestContext requestContext)
throws TemplateException {
- final PropertyEditor editor = CallableUtils.getOptionalAndUnwrapArgument(args, PROPERTY_EDITOR_PARAM_IDX,
+ final PropertyEditor editor = CallableUtils.getOptionalArgumentAndUnwrap(args, PROPERTY_EDITOR_PARAM_IDX,
PropertyEditor.class, this, objectWrapperAndUnwrapper);
- final Object value = CallableUtils.getOptionalAndUnwrapArgument(args, VALUE_PARAM_IDX,
+ final Object value = CallableUtils.getOptionalArgumentAndUnwrap(args, VALUE_PARAM_IDX,
null, this, objectWrapperAndUnwrapper);
String valueAsString = null;
[9/9] incubator-freemarker git commit: FREEMARKER-55: Merged: Spring
Directives/Functions to replace spring.tld tags (to be continued...)
Posted by dd...@apache.org.
FREEMARKER-55: Merged: Spring Directives/Functions to replace spring.tld tags (to be continued...)
Merge commit 'refs/pull/35/head' of https://github.com/apache/incubator-freemarker into 3
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/f6eebd85
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/f6eebd85
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/f6eebd85
Branch: refs/heads/3
Commit: f6eebd85657e86863bd6888f17a460e8be2635c8
Parents: 742ed4f 7c6f56c
Author: ddekany <dd...@apache.org>
Authored: Thu Sep 14 11:12:36 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Thu Sep 14 11:13:43 2017 +0200
----------------------------------------------------------------------
.../freemarker/core/util/CallableUtils.java | 159 +++++++++++++++++++
.../spring/SpringResourceTemplateLoader.java | 19 +--
.../AbstractSpringTemplateCallableModel.java | 50 +++++-
.../AbstractSpringTemplateDirectiveModel.java | 27 +---
.../AbstractSpringTemplateFunctionModel.java | 27 +---
.../freemarker/spring/model/BindDirective.java | 4 +-
.../spring/model/BindErrorsDirective.java | 4 +-
.../freemarker/spring/model/EvalFunction.java | 8 +-
.../spring/model/MessageFunction.java | 17 +-
.../spring/model/NestedPathDirective.java | 4 +-
.../model/SpringTemplateCallableHashModel.java | 13 +-
.../freemarker/spring/model/ThemeFunction.java | 5 +-
.../spring/model/TransformFunction.java | 18 +--
.../freemarker/spring/model/UrlFunction.java | 18 ++-
.../spring/web/view/PageContextServlet.java | 4 +-
.../test/model/eval-function-basic-usages.ftl | 15 +-
.../test/model/url-function-basic-usages.ftl | 21 +--
17 files changed, 283 insertions(+), 130 deletions(-)
----------------------------------------------------------------------
[5/9] incubator-freemarker git commit: FREEMARKER-55: adding calling
example in javadoc reference.
Posted by dd...@apache.org.
FREEMARKER-55: adding calling example in javadoc reference.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/3c25f7ae
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/3c25f7ae
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/3c25f7ae
Branch: refs/heads/3
Commit: 3c25f7ae5245b4d41379bc274193daaf0553ca25
Parents: a95c17f
Author: Woonsan Ko <wo...@apache.org>
Authored: Wed Sep 13 21:23:22 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Wed Sep 13 21:23:22 2017 -0400
----------------------------------------------------------------------
.../freemarker/core/util/CallableUtils.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3c25f7ae/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
index 8f53df1..e0d371f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/CallableUtils.java
@@ -736,7 +736,8 @@ public final class CallableUtils {
/**
* Convenience method to call
- * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, Object, TemplateCallableModel, boolean, ObjectWrapperAndUnwrapper)
+ * unwrapAndCastArgumentValue(args[argIndex], argIndex, type, false, null, callable, true, objectWrapperAndUnwrapper)}.
*/
public static <T> T getAndUnwrapArgument(
TemplateModel[] args, int argIndex, Class<T> type, TemplateFunctionModel callable,
@@ -748,7 +749,8 @@ public final class CallableUtils {
/**
* Convenience method to call
- * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, Object, TemplateCallableModel, boolean, ObjectWrapperAndUnwrapper)
+ * unwrapAndCastArgumentValue(args[argIndex], argIndex, type, false, null, callable, false, objectWrapperAndUnwrapper)}.
*/
public static <T> T getArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, TemplateDirectiveModel callable,
@@ -760,7 +762,8 @@ public final class CallableUtils {
/**
* Convenience method to call
- * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, Object, TemplateCallableModel, boolean, ObjectWrapperAndUnwrapper)
+ * unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, null, callable, true, objectWrapperAndUnwrapper)}.
*/
public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, TemplateFunctionModel callable,
@@ -772,7 +775,8 @@ public final class CallableUtils {
/**
* Convenience method to call
- * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, Object, TemplateCallableModel, boolean, ObjectWrapperAndUnwrapper)
+ * unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, null, callable, false, objectWrapperAndUnwrapper)}.
*/
public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, TemplateDirectiveModel callable,
@@ -784,7 +788,8 @@ public final class CallableUtils {
/**
* Convenience method to call
- * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, Object, TemplateCallableModel, boolean, ObjectWrapperAndUnwrapper)
+ * unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, defaultValue, callable, true, objectWrapperAndUnwrapper)}.
*/
public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, T defaultValue, TemplateFunctionModel callable,
@@ -796,7 +801,8 @@ public final class CallableUtils {
/**
* Convenience method to call
- * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, TemplateModel, TemplateCallableModel, boolean)}.
+ * {@link #unwrapAndCastArgumentValue(TemplateModel, int, Class, boolean, Object, TemplateCallableModel, boolean, ObjectWrapperAndUnwrapper)
+ * unwrapAndCastArgumentValue(args[argIndex], argIndex, type, true, defaultValue, callable, false, objectWrapperAndUnwrapper)}.
*/
public static <T> T getOptionalArgumentAndUnwrap(
TemplateModel[] args, int argIndex, Class<T> type, T defaultValue, TemplateDirectiveModel callable,