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/08/07 22:41:33 UTC
[7/8] incubator-freemarker git commit: FREEMARKER-64: Removed
TemplateMethodModel,
using TemplateFunctionModel everywhere instead. Some refinement of existing
TemplateCallableModel API-s, most importantly,
the support for null argumenArrayLayout. Removed
FREEMARKER-64: Removed TemplateMethodModel, using TemplateFunctionModel everywhere instead. Some refinement of existing TemplateCallableModel API-s, most importantly, the support for null argumenArrayLayout. Removed `?isMethod` (use `isFunction` instead) and `?isMacro` (use `isDirective` instead).
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/8d5263f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/8d5263f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/8d5263f2
Branch: refs/heads/3
Commit: 8d5263f2aa0fca589ed67b6f6ccbbd8780ece5ef
Parents: 1333a71
Author: ddekany <dd...@apache.org>
Authored: Mon Aug 7 20:44:33 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Tue Aug 8 00:11:19 2017 +0200
----------------------------------------------------------------------
.gitignore | 2 +
FM3-CHANGE-LOG.txt | 19 +-
.../core/FM2ASTToFM3SourceConverter.java | 4 +
.../converter/FM2ToFM3ConverterTest.java | 4 +
...a8DefaultObjectWrapperBridgeMethodsTest.java | 19 +-
.../impl/Java8DefaultObjectWrapperTest.java | 43 +--
.../freemarker/core/DirectiveCallPlaceTest.java | 6 +-
.../EnvironmentGetTemplateVariantsTest.java | 2 +-
.../core/TheadInterruptingSupportTest.java | 6 +-
.../impl/AbstractParallelIntrospectionTest.java | 9 +-
.../CommonSupertypeForUnwrappingHintTest.java | 8 +-
.../model/impl/DefaultObjectWrapperTest.java | 34 ++-
.../core/model/impl/EnumModelsTest.java | 11 +-
.../core/model/impl/ErrorMessagesTest.java | 24 +-
.../impl/FineTuneMethodAppearanceTest.java | 3 +-
.../core/model/impl/StaticModelsTest.java | 11 +-
.../templatesuite/CoreTemplateTestSuite.java | 4 +-
.../core/templatesuite/models/MultiModel2.java | 33 +--
.../models/SimpleTestFunction.java | 44 +++
.../templatesuite/models/SimpleTestMethod.java | 50 ----
.../core/templatesuite/models/TestMethod.java | 16 --
.../core/userpkg/AllFeaturesDirective.java | 2 +-
.../core/userpkg/AllFeaturesFunction.java | 2 +-
.../core/userpkg/NamedVarargsOnlyDirective.java | 2 +-
.../userpkg/PositionalVarargsOnlyDirective.java | 2 +-
.../userpkg/PositionalVarargsOnlyFunction.java | 2 +-
.../core/userpkg/TwoNamedParamsDirective.java | 2 +-
.../TwoNestedContentParamsDirective.java | 2 +-
.../userpkg/TwoPositionalParamsDirective.java | 2 +-
.../userpkg/TwoPositionalParamsFunction.java | 2 +-
.../core/userpkg/UpperCaseDirective.java | 2 +-
.../core/valueformat/NumberFormatTest.java | 2 +-
.../org/apache/freemarker/core/ast-builtins.ast | 4 +-
.../org/apache/freemarker/core/ast-range.ast | 6 +-
.../templatesuite/expected/number-literal.txt | 10 +-
.../templatesuite/expected/type-builtins.txt | 28 +-
.../core/templatesuite/templates/list2.ftl | 2 +-
.../templatesuite/templates/number-literal.ftl | 2 +-
.../templates/string-builtins3.ftl | 32 +--
.../templatesuite/templates/type-builtins.ftl | 7 +-
.../freemarker/core/ASTDynamicTopLevelCall.java | 77 +++--
.../apache/freemarker/core/ASTExpBuiltIn.java | 68 +++--
.../freemarker/core/ASTExpFunctionCall.java | 229 +++++++++++++++
.../freemarker/core/ASTExpListLiteral.java | 5 +-
.../freemarker/core/ASTExpMethodCall.java | 226 ---------------
.../freemarker/core/BuiltInsForDates.java | 30 +-
.../core/BuiltInsForExistenceHandling.java | 49 ++--
.../core/BuiltInsForMultipleTypes.java | 114 ++++----
.../BuiltInsForNestedContentParameters.java | 20 +-
.../freemarker/core/BuiltInsForNodes.java | 38 ++-
.../freemarker/core/BuiltInsForSequences.java | 126 ++++----
.../core/BuiltInsForStringsBasic.java | 287 ++++++++++++-------
.../core/BuiltInsForStringsEncoding.java | 19 +-
.../freemarker/core/BuiltInsForStringsMisc.java | 20 +-
.../core/BuiltInsForStringsRegexp.java | 51 ++--
.../org/apache/freemarker/core/Environment.java | 21 +-
.../org/apache/freemarker/core/MessageUtil.java | 2 +-
.../freemarker/core/NonFunctionException.java | 62 ++++
.../freemarker/core/NonMethodException.java | 62 ----
.../apache/freemarker/core/_CallableUtils.java | 61 ++--
.../core/_ObjectBuilderSettingEvaluator.java | 31 +-
.../freemarker/core/debug/DebugModel.java | 2 +-
.../core/debug/RmiDebugModelImpl.java | 4 +-
.../core/model/ArgumentArrayLayout.java | 18 ++
.../core/model/GeneralPurposeNothing.java | 18 +-
.../core/model/TemplateCallableModel.java | 11 +-
.../core/model/TemplateDirectiveModel.java | 45 ++-
.../core/model/TemplateFunctionModel.java | 10 +
.../core/model/TemplateMethodModel.java | 53 ----
.../core/model/TemplateModelException.java | 4 +-
.../freemarker/core/model/impl/BeanModel.java | 17 +-
.../core/model/impl/DefaultObjectWrapper.java | 29 +-
.../core/model/impl/JavaMethodModel.java | 94 ++----
.../model/impl/OverloadedFixArgsMethods.java | 24 +-
.../model/impl/OverloadedJavaMethodModel.java | 86 ++++++
.../core/model/impl/OverloadedMethods.java | 59 ++--
.../core/model/impl/OverloadedMethodsModel.java | 65 -----
.../model/impl/OverloadedMethodsSubset.java | 52 ++--
.../model/impl/OverloadedVarArgsMethods.java | 57 ++--
.../core/model/impl/ResourceBundleModel.java | 40 +--
.../core/model/impl/SimpleJavaMethodModel.java | 123 ++++++++
.../core/model/impl/SimpleMethod.java | 86 +++---
.../freemarker/core/model/impl/StaticModel.java | 16 +-
.../model/impl/TemplateModelListSequence.java | 13 +-
.../freemarker/core/model/impl/_MethodUtil.java | 40 +--
.../apache/freemarker/core/util/FTLUtil.java | 11 +-
freemarker-core/src/main/javacc/FTL.jj | 4 +-
.../apache/freemarker/servlet/IncludePage.java | 2 +-
.../jsp/CustomTagAndELFunctionCombiner.java | 157 ----------
.../freemarker/servlet/jsp/JspTagModelBase.java | 33 +--
.../servlet/jsp/SimpleTagDirectiveModel.java | 2 +-
.../servlet/jsp/TagDirectiveModel.java | 2 +-
.../freemarker/servlet/jsp/TaglibFactory.java | 22 +-
...eDirectiveModelAndTemplateFunctionModel.java | 77 +++++
.../freemarker/servlet/jsp/TLDParsingTest.java | 17 +-
.../test/templateutil/AssertDirective.java | 2 +-
.../templateutil/AssertEqualsDirective.java | 2 +-
.../test/templateutil/AssertFailsDirective.java | 2 +-
.../test/templateutil/NoOutputDirective.java | 2 +-
99 files changed, 1802 insertions(+), 1562 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 0d9f1d4..5407d43 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,5 @@
.directory
.Trash*
+
+**/adhoctest/
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/FM3-CHANGE-LOG.txt
----------------------------------------------------------------------
diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt
index d38866b..685160a 100644
--- a/FM3-CHANGE-LOG.txt
+++ b/FM3-CHANGE-LOG.txt
@@ -86,9 +86,6 @@ Node: Changes already mentioned above aren't repeated here!
translated to `${b}`, while `#{x; m1M3}` is translated to `${x?string('0.0##')}`). The output should remain the same.
- In `#macro` and `#function` the comma must only be used between by-position parameters (earlier the comma was
optional).
- TODO As of this writing, the by-position VS by-name feature isn't implemented yet, so
- comma is to be used for `#function`, and comma must not be used for `#macro` (even though for now macros are always
- allowed to be called with by-position parameters as well, just as in FM2).
- In `#function`, parentheses are now required around parameter list (as in `<#function f(a, b)>`), even if there are
zero parameters (as in `<#function f()>`). In `#macro`, parentheses are not allowed around parameter list anymore
(so `#macro m(a b)` becomes to `#macro m a b`). This is to remain more consistent with the look-and-feel of the
@@ -120,8 +117,10 @@ Node: Changes already mentioned above aren't repeated here!
- Renamed `DirectiveCallPlace` to `CallPlace`
- Removed Environment.getDirectiveCallPlace(), as TemplateDirectiveModel-s now get the CallPlace as the
parameter of the `execute` method.
- - ?isTransform was removed (as there are no transforms anymore).
- Converter note: The template converter tool replaces it with ?isDirective
+ - `?isTransform` was removed (as there are no transforms anymore); use `?isDirective` instead.
+ - `?isMacro` was removed; use `?isDirective` instead, which returns `true` both for macros and directives defined otherwise.
+ - `?isMethod` was removed; use `?isFunction` instead, which returns `true` both for Java methods and functions defined
+ otherwise (such as with `#function`).
- The directive returned by `?interpret` doesn't allow nested content anymore. (It wasn't useful earlier either;
the nested content was simply executed after the interpreted string.)
- Changes in #macro/#functions
@@ -199,7 +198,6 @@ Major changes / features
`TemplateDirectiveModel`, `TemplateTransformModel`). FM3 replaces them with only two new interfaces,
`TemplateDirectiveModel` (differs from the interface with identical name in FM2) and `TemplateFunctionModel`.
(These are both the subinterfaces of another new interface `TemplateCallableModel`.)
- [TODO: TemplateMethodModel[Ex] wasn't yet replaced by TemplateFunctionModel.]
- All callable TempalteModel-s support passing parameters by position and by name, even in the same call
(e.g., `<@heading "Some title" icon="foo.jpg" />`, `sum(1, 2, 3, abs=true)`)
- `#macro` now produces a `TemplateDirectiveModel` and `#function` produces a `TemplateFunctionModel`. (Earlier, the
@@ -375,11 +373,10 @@ Core / Models and Object wrapping
get method (`get(String)`) had priority over methods of similar name. The generic get method is only recognized from its
name and parameter type, so it's a quite consfusing feature, and might will be removed alltogether.
- Renamed TemplateDateModel.DATETIME to DATE_TIME (to be consistent with "dateTime" used elsewhere).
-- TemplateModel and TemplateModelEx changes (but they will be probably replaced by TemplateFunctionModel later):
- Removed FM2 `TemplateMethodModel`, then renamed `TemplateMethodModelEx` to `TemplateMethodModel`. Then changed it further to return
- `TemplateModel` (instead of `Object`, which allowed returning a non-wrapped value by design in FM2), changed the parameter `List` to
- `List<? extends TemplateModel>` (which it was earlier too, but there were no generic paramters back then), and allowed throwing
- `TemplateException` instead of the more restrictive `TemplateModelException`.
+- `TemplateMethod` and `TemplateMethodEx` was removed, taken over by `TemplateFunctionModel`. `TemplateFunctionModel` is
+ the common interface bith for wrapped Java methods and functions defined in the templates, or on any other ways.
+ `OverloadedMethodsModel` and `SimpleMethodModel` were renamed to `OverloadJavaMethodModel` and `SimpleJavaMethodModel`,
+ which of course extend `TemplateFunctionModel`, but allow inocations without `Environment` parameter.
Core / Template loading and caching
...................................
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java
----------------------------------------------------------------------
diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java
index 57a912f..6d9b25c 100644
--- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java
+++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java
@@ -1971,6 +1971,10 @@ public class FM2ASTToFM3SourceConverter {
.put("web_safe", "html")
.put("is_transform", "isDirective")
.put("isTransform", "isDirective")
+ .put("is_macro", "isDirective")
+ .put("isMacro", "isDirective")
+ .put("is_method", "isFunction")
+ .put("isMethod", "isFunction")
.put("iso_utc_fz", "isoUtcFZ")
.put("iso_utc_nz", "isoUtcNZ")
.put("iso_utc_ms_nz", "isoUtcMsNZ")
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java
----------------------------------------------------------------------
diff --git a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java
index 63c2a92..0790518 100644
--- a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java
+++ b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java
@@ -475,6 +475,10 @@ public class FM2ToFM3ConverterTest extends ConverterTest {
assertConverted("${s?html}", "${s?webSafe}");
assertConverted("${s?isDirective}", "${s?is_transform}");
assertConverted("${s?isDirective}", "${s?isTransform}");
+ assertConverted("${s?isDirective}", "${s?is_macro}");
+ assertConverted("${s?isDirective}", "${s?isMacro}");
+ assertConverted("${s?isFunction}", "${s?is_method}");
+ assertConverted("${s?isFunction}", "${s?isMethod}");
assertConvertedSame("${s ? upperCase\t?\t\tleftPad(5)}");
assertConvertedSame("${s <#--1--> ? <#--2--> upperCase}");
// Runtime params:
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java b/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
index abb373e..095dc37 100644
--- a/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
+++ b/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
@@ -20,12 +20,11 @@ package org.apache.freemarker.core.model.impl;
import static org.junit.Assert.*;
-import java.util.Collections;
-
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.Constants;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
import org.junit.Test;
public class Java8DefaultObjectWrapperBridgeMethodsTest {
@@ -53,12 +52,14 @@ public class Java8DefaultObjectWrapperBridgeMethodsTest {
} catch (Exception e) {
throw new IllegalStateException(e);
}
-
- TemplateMethodModel m1 = (TemplateMethodModel) wrapped.get("m1");
- assertEquals(BridgeMethodsBean.M1_RETURN_VALUE, "" + m1.execute(Collections.emptyList()));
-
- TemplateMethodModel m2 = (TemplateMethodModel) wrapped.get("m2");
- assertNull(m2.execute(Collections.emptyList()));
+
+ JavaMethodModel m1 = (JavaMethodModel) wrapped.get("m1");
+ assertEquals(
+ BridgeMethodsBean.M1_RETURN_VALUE,
+ "" + m1.execute(Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE));
+
+ JavaMethodModel m2 = (JavaMethodModel) wrapped.get("m2");
+ assertNull(m2.execute(Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperTest.java b/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperTest.java
index 08dc5b1..c2bfad5 100644
--- a/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperTest.java
+++ b/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperTest.java
@@ -20,12 +20,12 @@ package org.apache.freemarker.core.model.impl;
import static org.junit.Assert.*;
-import java.util.Collections;
-
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.Constants;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
+import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateNumberModel;
import org.apache.freemarker.core.model.TemplateScalarModel;
import org.apache.freemarker.core.model.TemplateSequenceModel;
@@ -61,13 +61,13 @@ public class Java8DefaultObjectWrapperTest {
// Has only indexed read method, so it's not exposed as a property
assertNull(wrappedBean.get(Java8DefaultMethodsBeanBase.DEFAULT_METHOD_INDEXED_PROP));
- TemplateMethodModel indexedReadMethod = (TemplateMethodModel) wrappedBean.get(
+ JavaMethodModel indexedReadMethod = (JavaMethodModel) wrappedBean.get(
Java8DefaultMethodsBeanBase.DEFAULT_METHOD_INDEXED_PROP_GETTER);
assertNotNull(indexedReadMethod);
assertEquals(Java8DefaultMethodsBeanBase.DEFAULT_METHOD_INDEXED_PROP_VALUE,
- ((TemplateScalarModel) indexedReadMethod.execute(Collections.singletonList(new SimpleNumber(0))))
- .getAsString
- ());
+ ((TemplateScalarModel) indexedReadMethod.execute(
+ new TemplateModel[] { new SimpleNumber(0) }, NonTemplateCallPlace.INSTANCE))
+ .getAsString());
}
{
// We see default method indexed read method, but it's invalidated by normal getter in the subclass
@@ -114,45 +114,54 @@ public class Java8DefaultObjectWrapperTest {
// Has only indexed read method, so it's not exposed as a property
assertNull(wrappedBean.get(Java8DefaultMethodsBean.INDEXED_PROP_4));
- TemplateMethodModel indexedReadMethod = (TemplateMethodModel) wrappedBean.get(
+ JavaMethodModel indexedReadMethod = (JavaMethodModel) wrappedBean.get(
Java8DefaultMethodsBean.INDEXED_PROP_GETTER_4);
assertNotNull(indexedReadMethod);
assertEquals(Java8DefaultMethodsBean.INDEXED_PROP_4_VALUE,
- ((TemplateScalarModel) indexedReadMethod.execute(Collections.singletonList(new SimpleNumber(0))))
+ ((TemplateScalarModel) indexedReadMethod.execute(
+ new TemplateModel[] { new SimpleNumber(0) }, NonTemplateCallPlace.INSTANCE))
.getAsString());
}
{
- TemplateMethodModel action = (TemplateMethodModel) wrappedBean.get(
+ JavaMethodModel action = (JavaMethodModel) wrappedBean.get(
Java8DefaultMethodsBean.NORMAL_ACTION);
assertNotNull(action);
assertEquals(
Java8DefaultMethodsBean.NORMAL_ACTION_RETURN_VALUE,
- ((TemplateScalarModel) action.execute(Collections.emptyList())).getAsString());
+ ((TemplateScalarModel) action.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE))
+ .getAsString());
}
{
- TemplateMethodModel action = (TemplateMethodModel) wrappedBean.get(
+ JavaMethodModel action = (JavaMethodModel) wrappedBean.get(
Java8DefaultMethodsBean.NORMAL_ACTION);
assertNotNull(action);
assertEquals(
Java8DefaultMethodsBean.NORMAL_ACTION_RETURN_VALUE,
- ((TemplateScalarModel) action.execute(Collections.emptyList())).getAsString());
+ ((TemplateScalarModel) action.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE))
+ .getAsString());
}
{
- TemplateMethodModel action = (TemplateMethodModel) wrappedBean.get(
+ JavaMethodModel action = (JavaMethodModel) wrappedBean.get(
Java8DefaultMethodsBean.DEFAULT_METHOD_ACTION);
assertNotNull(action);
assertEquals(
Java8DefaultMethodsBean.DEFAULT_METHOD_ACTION_RETURN_VALUE,
- ((TemplateScalarModel) action.execute(Collections.emptyList())).getAsString());
+ ((TemplateScalarModel) action.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE))
+ .getAsString());
}
{
- TemplateMethodModel action = (TemplateMethodModel) wrappedBean.get(
+ JavaMethodModel action = (JavaMethodModel) wrappedBean.get(
Java8DefaultMethodsBean.OVERRIDDEN_DEFAULT_METHOD_ACTION);
assertNotNull(action);
assertEquals(
Java8DefaultMethodsBean.OVERRIDDEN_DEFAULT_METHOD_ACTION_RETURN_VALUE,
- ((TemplateScalarModel) action.execute(Collections.emptyList())).getAsString());
+ ((TemplateScalarModel) action.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE))
+ .getAsString());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
index 7ee42c2..25a05ac 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
@@ -137,7 +137,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
@@ -207,7 +207,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
@@ -245,7 +245,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ARGS_LAYOUT;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
index a094ec6..d79e37a 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
@@ -207,7 +207,7 @@ public class EnvironmentGetTemplateVariantsTest extends TemplateTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/TheadInterruptingSupportTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/TheadInterruptingSupportTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/TheadInterruptingSupportTest.java
index 61c5823..1468e59 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/TheadInterruptingSupportTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/TheadInterruptingSupportTest.java
@@ -129,7 +129,7 @@ public class TheadInterruptingSupportTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
@@ -150,7 +150,7 @@ public class TheadInterruptingSupportTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
@@ -173,7 +173,7 @@ public class TheadInterruptingSupportTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
index aac56b3..7d2b3fc 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
@@ -20,9 +20,10 @@
package org.apache.freemarker.core.model.impl;
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.Constants;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.model.TemplateNumberModel;
@@ -113,9 +114,11 @@ public abstract class AbstractParallelIntrospectionTest extends TestCase {
private void testMethod(TemplateHashModel h, int objIdx, int mIdx)
throws TemplateException, AssertionError {
- TemplateMethodModel pv = (TemplateMethodModel) h.get("m" + mIdx);
+ JavaMethodModel pv = (JavaMethodModel) h.get("m" + mIdx);
final int expected = objIdx * 1000 + mIdx;
- final int got = ((TemplateNumberModel) pv.execute(null)).getAsNumber().intValue();
+ final int got = ((TemplateNumberModel) pv.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE))
+ .getAsNumber().intValue();
if (got != expected) {
throw new AssertionError("Method assertion failed; " +
"expected " + expected + ", but got " + got);
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
index ef15dae..c4e42ab 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
@@ -22,6 +22,7 @@ package org.apache.freemarker.core.model.impl;
import java.io.Serializable;
import java.util.List;
+import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateModelException;
import junit.framework.TestCase;
@@ -110,17 +111,18 @@ public class CommonSupertypeForUnwrappingHintTest extends TestCase {
}
@Override
- Class[] preprocessParameterTypes(CallableMemberDescriptor memberDesc) {
+ Class<?>[] preprocessParameterTypes(CallableMemberDescriptor memberDesc) {
return memberDesc.getParamTypes();
}
@Override
- void afterWideningUnwrappingHints(Class[] paramTypes, int[] paramNumericalTypes) {
+ void afterWideningUnwrappingHints(Class<?>[] paramTypes, int[] paramNumericalTypes) {
// Do nothing
}
@Override
- MaybeEmptyMemberAndArguments getMemberAndArguments(List tmArgs, DefaultObjectWrapper w) throws TemplateModelException {
+ MaybeEmptyMemberAndArguments getMemberAndArguments(TemplateModel[] tmArgs, DefaultObjectWrapper w) throws
+ TemplateModelException {
throw new RuntimeException("Not implemented in this dummy.");
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
index dd1c841..9ac550c 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
@@ -41,18 +41,19 @@ import java.util.TreeSet;
import java.util.Vector;
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
import org.apache.freemarker.core.Template;
import org.apache.freemarker.core.TemplateException;
import org.apache.freemarker.core.Version;
import org.apache.freemarker.core._CoreAPI;
import org.apache.freemarker.core.model.AdapterTemplateModel;
+import org.apache.freemarker.core.model.Constants;
import org.apache.freemarker.core.model.ObjectWrapper;
import org.apache.freemarker.core.model.TemplateBooleanModel;
import org.apache.freemarker.core.model.TemplateCollectionModel;
import org.apache.freemarker.core.model.TemplateCollectionModelEx;
import org.apache.freemarker.core.model.TemplateHashModel;
import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateMethodModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.model.TemplateModelIterator;
@@ -191,15 +192,16 @@ public class DefaultObjectWrapperTest {
assertEquals(1, ow.unwrap(bean.get("x")));
{
// Check method calls, and also if the return value is wrapped with the overidden "wrap".
- final TemplateModel mr = ((TemplateMethodModel) bean.get("m")).execute(
- Collections.<TemplateModel>emptyList());
+ final TemplateModel mr = ((JavaMethodModel) bean.get("m")).execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE);
assertEquals(Collections.singletonList(1), ow.unwrap(mr));
assertTrue(DefaultListAdapter.class.isInstance(mr));
}
{
// Check custom TM usage and round trip:
- final TemplateModel mr = ((TemplateMethodModel) bean.get("incTupple"))
- .execute(Collections.singletonList(ow.wrap(new Tupple<>(1, 2))));
+ final TemplateModel mr = ((JavaMethodModel) bean.get("incTupple"))
+ .execute(new TemplateModel[] { ow.wrap(new Tupple<>(1, 2)) },
+ NonTemplateCallPlace.INSTANCE);
assertEquals(new Tupple<>(2, 3), ow.unwrap(mr));
assertTrue(TuppleAdapter.class.isInstance(mr));
}
@@ -448,15 +450,15 @@ public class DefaultObjectWrapperTest {
final TemplateHashModel testBeanTM = (TemplateHashModel) dow.wrap(new RoundtripTesterBean());
{
- TemplateMethodModel getClassM = (TemplateMethodModel) testBeanTM.get("getClass");
- TemplateModel r = getClassM.execute(Collections.singletonList(objTM));
+ JavaMethodModel getClassM = (JavaMethodModel) testBeanTM.get("getClass");
+ TemplateModel r = getClassM.execute(new TemplateModel[] { objTM }, NonTemplateCallPlace.INSTANCE);
final Class rClass = (Class) ((WrapperTemplateModel) r).getWrappedObject();
assertThat(rClass, typeCompatibleWith(expectedPojoClass));
}
if (expectedPojoToString != null) {
- TemplateMethodModel getToStringM = (TemplateMethodModel) testBeanTM.get("toString");
- TemplateModel r = getToStringM.execute(Collections.singletonList(objTM));
+ JavaMethodModel getToStringM = (JavaMethodModel) testBeanTM.get("toString");
+ TemplateModel r = getToStringM.execute(new TemplateModel[] { objTM }, NonTemplateCallPlace.INSTANCE);
assertEquals(expectedPojoToString, ((TemplateScalarModel) r).getAsString());
}
}
@@ -583,8 +585,9 @@ public class DefaultObjectWrapperTest {
DefaultIteratorAdapter iteratorAdapter = (DefaultIteratorAdapter) wrappedIterator;
TemplateHashModel api = (TemplateHashModel) iteratorAdapter.getAPI();
- assertFalse(((TemplateBooleanModel) ((TemplateMethodModel)
- api.get("hasNext")).execute(Collections.<TemplateModel>emptyList())).getAsBoolean());
+ assertFalse(((TemplateBooleanModel) ((JavaMethodModel)
+ api.get("hasNext")).execute(Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE))
+ .getAsBoolean());
}
@SuppressWarnings("boxing")
@@ -673,8 +676,8 @@ public class DefaultObjectWrapperTest {
}
TemplateHashModel api = (TemplateHashModel) enumAdapter.getAPI();
- assertFalse(((TemplateBooleanModel) ((TemplateMethodModel) api.get("hasMoreElements"))
- .execute(Collections.<TemplateModel>emptyList())).getAsBoolean());
+ assertFalse(((TemplateBooleanModel) ((JavaMethodModel) api.get("hasMoreElements"))
+ .execute(Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE)).getAsBoolean());
}
@Test
@@ -729,8 +732,9 @@ public class DefaultObjectWrapperTest {
fail();
}
TemplateHashModel apiModel = (TemplateHashModel) ((TemplateModelWithAPISupport) normalModel).getAPI();
- TemplateMethodModel sizeMethod = (TemplateMethodModel) apiModel.get("size");
- TemplateNumberModel r = (TemplateNumberModel) sizeMethod.execute(Collections.<TemplateModel>emptyList());
+ JavaMethodModel sizeMethod = (JavaMethodModel) apiModel.get("size");
+ TemplateNumberModel r = (TemplateNumberModel) sizeMethod.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE);
assertEquals(expectedSize, r.getAsNumber().intValue());
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
index 9373cf5..9336388 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
@@ -21,11 +21,10 @@ package org.apache.freemarker.core.model.impl;
import static org.junit.Assert.*;
-import java.util.ArrayList;
-
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
+import org.apache.freemarker.core.model.Constants;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.model.TemplateScalarModel;
@@ -58,8 +57,10 @@ public class EnumModelsTest {
assertTrue(a instanceof TemplateScalarModel);
assertTrue(a instanceof TemplateHashModel);
assertEquals(((TemplateScalarModel) a).getAsString(), "ts:A");
- TemplateMethodModel nameMethod = (TemplateMethodModel) ((TemplateHashModel) a).get("name");
- assertEquals(((TemplateScalarModel) nameMethod.execute(new ArrayList())).getAsString(), "A");
+ JavaMethodModel nameMethod = (JavaMethodModel) ((TemplateHashModel) a).get("name");
+ assertEquals(((TemplateScalarModel) nameMethod.execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE)).getAsString(),
+ "A");
assertSame(e, enums.get(E.class.getName()));
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
index dcb8cf6..89b06be 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
@@ -22,12 +22,12 @@ package org.apache.freemarker.core.model.impl;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
-import java.util.Collections;
import java.util.Date;
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
+import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.model.TemplateScalarModel;
import org.apache.freemarker.core.outputformat.impl.HTMLOutputFormat;
@@ -60,9 +60,9 @@ public class ErrorMessagesTest {
TemplateHashModel thm = (TemplateHashModel) ow.wrap(new TestBean());
{
- TemplateMethodModel m = (TemplateMethodModel) thm.get("m1");
+ JavaMethodModel m = (JavaMethodModel) thm.get("m1");
try {
- m.execute(Collections.singletonList(html));
+ m.execute(new TemplateModel[] { html }, NonTemplateCallPlace.INSTANCE);
fail();
} catch (TemplateModelException e) {
assertThat(e.getMessage(), allOf(
@@ -72,9 +72,9 @@ public class ErrorMessagesTest {
}
{
- TemplateMethodModel m = (TemplateMethodModel) thm.get("m2");
+ JavaMethodModel m = (JavaMethodModel) thm.get("m2");
try {
- m.execute(Collections.singletonList(html));
+ m.execute(new TemplateModel[] { html }, NonTemplateCallPlace.INSTANCE);
fail();
} catch (TemplateModelException e) {
assertThat(e.getMessage(), allOf(
@@ -84,9 +84,9 @@ public class ErrorMessagesTest {
}
for (String methodName : new String[] { "mOverloaded", "mOverloaded3" }) {
- TemplateMethodModel m = (TemplateMethodModel) thm.get(methodName);
+ JavaMethodModel m = (JavaMethodModel)thm.get(methodName);
try {
- m.execute(Collections.singletonList(html));
+ m.execute(new TemplateModel[] { html }, NonTemplateCallPlace.INSTANCE);
fail();
} catch (TemplateModelException e) {
assertThat(e.getMessage(), allOf(
@@ -97,9 +97,9 @@ public class ErrorMessagesTest {
}
{
- TemplateMethodModel m = (TemplateMethodModel) thm.get("mOverloaded2");
+ JavaMethodModel m = (JavaMethodModel)thm.get("mOverloaded2");
try {
- m.execute(Collections.singletonList(html));
+ m.execute(new TemplateModel[] { html }, NonTemplateCallPlace.INSTANCE);
fail();
} catch (TemplateModelException e) {
assertThat(e.getMessage(), allOf(
@@ -110,8 +110,8 @@ public class ErrorMessagesTest {
}
{
- TemplateMethodModel m = (TemplateMethodModel) thm.get("mOverloaded4");
- Object r = m.execute(Collections.singletonList(html));
+ JavaMethodModel m = (JavaMethodModel)thm.get("mOverloaded4");
+ Object r = m.execute(new TemplateModel[] { html }, NonTemplateCallPlace.INSTANCE);
if (r instanceof TemplateScalarModel) {
r = ((TemplateScalarModel) r).getAsString();
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
index eb4d807..e5366f6 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.*;
import org.apache.freemarker.core.Configuration;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.model.TemplateScalarModel;
@@ -48,7 +47,7 @@ public class FineTuneMethodAppearanceTest {
assertEquals("v1", ((TemplateScalarModel) thm.get("v1")).getAsString());
assertEquals("v2()", ((TemplateScalarModel) thm.get("v2")).getAsString());
assertEquals("getV3()", ((TemplateScalarModel) thm.get("v3")).getAsString());
- assertTrue(thm.get("getV3") instanceof TemplateMethodModel);
+ assertTrue(thm.get("getV3") instanceof JavaMethodModel);
}
static public class C {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
index 44da42a..f888b2c 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
@@ -22,11 +22,10 @@ package org.apache.freemarker.core.model.impl;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
-import java.util.ArrayList;
-
import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.NonTemplateCallPlace;
+import org.apache.freemarker.core.model.Constants;
import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateMethodModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.model.TemplateScalarModel;
@@ -65,8 +64,10 @@ public class StaticModelsTest {
assertEquals(((TemplateScalarModel) f).getAsString(), "F OK");
TemplateModel m = s.get("m");
- assertTrue(m instanceof TemplateMethodModel);
- assertEquals(((TemplateScalarModel) ((TemplateMethodModel) m).execute(new ArrayList())).getAsString(), "m OK");
+ assertTrue(m instanceof JavaMethodModel);
+ assertEquals(((TemplateScalarModel) ((JavaMethodModel) m).execute(
+ Constants.EMPTY_TEMPLATE_MODEL_ARRAY, NonTemplateCallPlace.INSTANCE)).getAsString(),
+ "m OK");
assertSame(s, statics.get(S.class.getName()));
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
index 0b21c75..6beb834 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
@@ -36,9 +36,9 @@ import org.apache.freemarker.core.templatesuite.models.JavaObjectInfo;
import org.apache.freemarker.core.templatesuite.models.Listables;
import org.apache.freemarker.core.templatesuite.models.MultiModel1;
import org.apache.freemarker.core.templatesuite.models.OverloadedMethods2;
+import org.apache.freemarker.core.templatesuite.models.SimpleTestFunction;
import org.apache.freemarker.core.templatesuite.models.TestBean;
import org.apache.freemarker.core.templatesuite.models.TestBoolean;
-import org.apache.freemarker.core.templatesuite.models.TestMethod;
import org.apache.freemarker.core.templatesuite.models.TestNode;
import org.apache.freemarker.core.templatesuite.models.VarArgTestModel;
import org.apache.freemarker.test.TemplateTestSuite;
@@ -158,7 +158,7 @@ public class CoreTemplateTestSuite extends TemplateTestSuite {
} else if (simpleTestName.equals("stringbimethods")) {
dataModel.put("multi", new TestBoolean());
} else if (simpleTestName.startsWith("type-builtins")) {
- dataModel.put("testmethod", new TestMethod());
+ dataModel.put("testfunction", new SimpleTestFunction());
dataModel.put("testnode", new TestNode());
dataModel.put("testcollection", new SimpleCollection(new ArrayList<>(), dow));
dataModel.put("testcollectionEx", DefaultNonListCollectionAdapter.adapt(new HashSet<>(), dow));
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
index 3223652..ad4cbe3 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
@@ -19,11 +19,12 @@
package org.apache.freemarker.core.templatesuite.models;
-import java.util.List;
-
+import org.apache.freemarker.core.CallPlace;
+import org.apache.freemarker.core.Environment;
import org.apache.freemarker.core.TemplateException;
import org.apache.freemarker.core._CallableUtils;
-import org.apache.freemarker.core.model.TemplateMethodModel;
+import org.apache.freemarker.core.model.ArgumentArrayLayout;
+import org.apache.freemarker.core.model.TemplateFunctionModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateScalarModel;
import org.apache.freemarker.core.model.impl.SimpleScalar;
@@ -31,34 +32,26 @@ import org.apache.freemarker.core.model.impl.SimpleScalar;
/**
* Testcase to see how FreeMarker deals with multiple Template models.
*/
-public class MultiModel2 implements TemplateScalarModel, TemplateMethodModel {
+public class MultiModel2 implements TemplateScalarModel, TemplateFunctionModel {
- /**
- * Returns the scalar's value as a String.
- *
- * @return the String value of this scalar.
- */
@Override
public String getAsString() {
return "Model2 is alive!";
}
- /**
- * Executes a method call.
- *
- * @param args a <tt>List</tt> of <tt>String</tt> objects containing the values
- * of the arguments passed to the method.
- * @return the <tt>TemplateModel</tt> produced by the method, or null.
- */
@Override
- public TemplateModel execute(List<? extends TemplateModel> args) throws TemplateException {
+ public TemplateModel execute(TemplateModel[] args, CallPlace callPlace, Environment env) throws TemplateException {
StringBuilder aResults = new StringBuilder( "Arguments are:<br />" );
- for (int i = 0; i < args.size(); i++) {
- TemplateModel arg = args.get(i);
- aResults.append(_CallableUtils.castArgToString(arg, i));
+ for (int i = 0; i < args.length; i++) {
+ aResults.append(_CallableUtils.castArgToString(args, i));
aResults.append("<br />");
}
return new SimpleScalar( aResults.toString() );
}
+
+ @Override
+ public ArgumentArrayLayout getFunctionArgumentArrayLayout() {
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestFunction.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestFunction.java
new file mode 100644
index 0000000..0f6f579
--- /dev/null
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestFunction.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.freemarker.core.templatesuite.models;
+
+import org.apache.freemarker.core.CallPlace;
+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.TemplateFunctionModel;
+import org.apache.freemarker.core.model.TemplateModel;
+import org.apache.freemarker.core.model.impl.SimpleScalar;
+
+/**
+ * A simple method model used as a test bed.
+ */
+public class SimpleTestFunction implements TemplateFunctionModel {
+
+ @Override
+ public TemplateModel execute(TemplateModel[] args, CallPlace callPlace, Environment env) throws TemplateException {
+ return new SimpleScalar("Argument value is: " + args[0]);
+ }
+
+ @Override
+ public ArgumentArrayLayout getFunctionArgumentArrayLayout() {
+ return ArgumentArrayLayout.SINGLE_POSITIONAL_PARAMETER;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestMethod.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestMethod.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestMethod.java
deleted file mode 100644
index 48352a0..0000000
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/SimpleTestMethod.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.core.templatesuite.models;
-
-import java.util.List;
-
-import org.apache.freemarker.core.model.TemplateMethodModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-/**
- * A simple method model used as a test bed.
- */
-public class SimpleTestMethod implements TemplateMethodModel {
-
- /**
- * Executes a method call.
- *
- * @param args a <tt>List</tt> of <tt>String</tt> objects containing
- * the values of the arguments passed to the method.
- * @return the <tt>TemplateModel</tt> produced by the method, or null.
- */
- @Override
- public TemplateModel execute(List<? extends TemplateModel> args) {
- if ( args.size() == 0 ) {
- return new SimpleScalar( "Empty list provided" );
- } else if ( args.size() > 1 ) {
- return new SimpleScalar( "Argument size is: " + args.size() );
- } else {
- return new SimpleScalar( "Single argument value is: " + args.get(0) );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/TestMethod.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/TestMethod.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/TestMethod.java
deleted file mode 100644
index ed97f9e..0000000
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/TestMethod.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.apache.freemarker.core.templatesuite.models;
-
-import java.util.List;
-
-import org.apache.freemarker.core.model.TemplateMethodModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-public class TestMethod implements TemplateMethodModel {
-
- @Override
- public TemplateModel execute(List<? extends TemplateModel> args) {
- return new SimpleScalar("x");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesDirective.java
index d9bb394..27a42d9 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesDirective.java
@@ -122,7 +122,7 @@ public class AllFeaturesDirective extends TestTemplateCallableModel implements T
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ARGS_LAYOUT;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesFunction.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesFunction.java
index 5825745..f468be7 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesFunction.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/AllFeaturesFunction.java
@@ -105,7 +105,7 @@ public class AllFeaturesFunction extends TestTemplateCallableModel implements Te
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getFunctionArgumentArrayLayout() {
return ARGS_LAYOUT;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
index a087188..268c7fc 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
@@ -52,7 +52,7 @@ public class NamedVarargsOnlyDirective extends TestTemplateCallableModel impleme
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ARGS_LAYOUT;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
index 2f9532e..9bccfe5 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
@@ -46,7 +46,7 @@ public class PositionalVarargsOnlyDirective extends TestTemplateCallableModel im
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.POSITIONAL_VARARGS_PARAMETER_ONLY;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyFunction.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyFunction.java
index eb8a3eb..1c0c82c 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyFunction.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyFunction.java
@@ -56,7 +56,7 @@ public class PositionalVarargsOnlyFunction extends TestTemplateCallableModel imp
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getFunctionArgumentArrayLayout() {
return ARGS_LAYOUT;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
index 83b5435..3b3ed1c 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
@@ -62,7 +62,7 @@ public class TwoNamedParamsDirective extends TestTemplateCallableModel implement
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ARGS_LAYOUT;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
index 6f768f4..e2d7ffb 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
@@ -48,7 +48,7 @@ public class TwoNestedContentParamsDirective extends TestTemplateCallableModel i
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
index 008d8c8..a057bc3 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
@@ -51,7 +51,7 @@ public class TwoPositionalParamsDirective extends TestTemplateCallableModel impl
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ARGS_LAYOUT;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsFunction.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsFunction.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsFunction.java
index 58e292b..e406c99 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsFunction.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsFunction.java
@@ -57,7 +57,7 @@ public class TwoPositionalParamsFunction extends TestTemplateCallableModel imple
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getFunctionArgumentArrayLayout() {
return ARGS_LAYOUT;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
index 05e5d6d..3936502 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
@@ -47,7 +47,7 @@ public class UpperCaseDirective implements TemplateDirectiveModel {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/NumberFormatTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/NumberFormatTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/NumberFormatTest.java
index 9bdea77..685ce5a 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/NumberFormatTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/NumberFormatTest.java
@@ -186,7 +186,7 @@ public class NumberFormatTest extends TemplateTest {
}
@Override
- public ArgumentArrayLayout getArgumentArrayLayout() {
+ public ArgumentArrayLayout getDirectiveArgumentArrayLayout() {
return ArgumentArrayLayout.PARAMETERLESS;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-builtins.ast
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-builtins.ast b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-builtins.ast
index 538dd05..0b0a8f8 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-builtins.ast
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-builtins.ast
@@ -24,7 +24,7 @@
#text // o.a.f.c.ASTStaticText
- content: "\n" // String
${...} // o.a.f.c.ASTDollarInterpolation
- - content: ...(...) // o.a.f.c.ASTExpMethodCall
+ - content: ...(...) // o.a.f.c.ASTExpFunctionCall
- callee: ?leftPad // o.a.f.c.BuiltInsForStringsBasic$padBI
- left-hand operand: x // o.a.f.c.ASTExpVariable
- right-hand operand: "leftPad" // String
@@ -32,7 +32,7 @@
#text // o.a.f.c.ASTStaticText
- content: "\n" // String
${...} // o.a.f.c.ASTDollarInterpolation
- - content: ...(...) // o.a.f.c.ASTExpMethodCall
+ - content: ...(...) // o.a.f.c.ASTExpFunctionCall
- callee: ?leftPad // o.a.f.c.BuiltInsForStringsBasic$padBI
- left-hand operand: x // o.a.f.c.ASTExpVariable
- right-hand operand: "leftPad" // String
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-range.ast
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-range.ast b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-range.ast
index 9d9bb4b..3d66e58 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-range.ast
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/ast-range.ast
@@ -115,12 +115,12 @@
- assignment target: "x" // String
- assignment operator: "=" // String
- assignment source: .. // o.a.f.c.ASTExpRange
- - left-hand operand: ...(...) // o.a.f.c.ASTExpMethodCall
+ - left-hand operand: ...(...) // o.a.f.c.ASTExpFunctionCall
- callee: ?indexOf // o.a.f.c.BuiltInsForStringsBasic$index_ofBI
- left-hand operand: n // o.a.f.c.ASTExpVariable
- right-hand operand: "indexOf" // String
- argument value: "x" // o.a.f.c.ASTExpStringLiteral
- - right-hand operand: ...(...) // o.a.f.c.ASTExpMethodCall
+ - right-hand operand: ...(...) // o.a.f.c.ASTExpFunctionCall
- callee: ?indexOf // o.a.f.c.BuiltInsForStringsBasic$index_ofBI
- left-hand operand: m // o.a.f.c.ASTExpVariable
- right-hand operand: "indexOf" // String
@@ -236,7 +236,7 @@
#text // o.a.f.c.ASTStaticText
- content: "\n" // String
${...} // o.a.f.c.ASTDollarInterpolation
- - content: ...(...) // o.a.f.c.ASTExpMethodCall
+ - content: ...(...) // o.a.f.c.ASTExpFunctionCall
- callee: f // o.a.f.c.ASTExpVariable
- argument value: .. // o.a.f.c.ASTExpRange
- left-hand operand: m // o.a.f.c.ASTExpVariable
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/number-literal.txt
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/number-literal.txt b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/number-literal.txt
index b80bc85..18311bd 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/number-literal.txt
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/number-literal.txt
@@ -69,11 +69,11 @@ twelve
<p>Numbers in method calls:</p>
-Single argument value is: 1
-Single argument value is: 1
-Single argument value is: 12
-Single argument value is: 3
-Single argument value is: 3
+Argument value is: 1
+Argument value is: 1
+Argument value is: 12
+Argument value is: 3
+Argument value is: 3
</body>
</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/type-builtins.txt
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/type-builtins.txt b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/type-builtins.txt
index eeb191e..4d48327 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/type-builtins.txt
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/expected/type-builtins.txt
@@ -16,17 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-StNuBoMeMaHaHxSeCoCxEnInDiNo
-1 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 1 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 1 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 1 0 0 0 0 0 0 0 1 0
-0 0 0 0 0 1 1 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 1 0 0 1 1 0 0
-0 0 0 0 0 0 0 0 1 0 1 0 0 0
-0 0 0 0 0 0 0 0 1 1 1 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 1
-1 0 0 0 0 1 1 0 0 0 0 0 0 0
-0 0 0 1 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 0 0 0 0 0 0 0 0 0 0
+StNuBoHaHxSeCoCxEnInFuDiNo
+1 0 0 0 0 0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0 0 0 0 0 0
+0 0 1 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 1 0 0
+0 0 0 0 0 0 0 0 0 0 0 1 0
+0 0 0 1 1 0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 0 1 1 0 0 0
+0 0 0 0 0 0 1 0 1 0 0 0 0
+0 0 0 0 0 0 1 1 1 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 1
+1 0 0 1 1 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 1 0 0
+0 0 0 0 0 0 0 0 0 0 1 0 0
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/list2.ftl
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/list2.ftl b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/list2.ftl
index 9893c1b..7d563ed 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/list2.ftl
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/list2.ftl
@@ -82,7 +82,7 @@
<#function resolve(xs)>
<#assign resolveCallCnt = (resolveCallCnt!0) + 1>
- <#if xs?isMethod>
+ <#if xs?isFunction>
<#return xs()>
<#else>
<#return xs>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/number-literal.ftl
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/number-literal.ftl b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/number-literal.ftl
index 334841d..348d33b 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/number-literal.ftl
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/number-literal.ftl
@@ -44,7 +44,7 @@
"12" = "twelve",
"2one" = "two-one",
one2 = "one-two",
- call = "org.apache.freemarker.core.templatesuite.models.SimpleTestMethod"?new()
+ call = "org.apache.freemarker.core.templatesuite.models.SimpleTestFunction"?new()
>
<p>A simple test follows:</p>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/string-builtins3.ftl
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/string-builtins3.ftl b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/string-builtins3.ftl
index 6442c63..ece74f9 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/string-builtins3.ftl
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/string-builtins3.ftl
@@ -35,10 +35,10 @@
<@assertFails message='"m" flag'>
${'x'?keepBefore('x', 'm')}
</...@assertFails>
-<@assertFails message='3'>
+<@assertFails message='Too many arguments'>
${'x'?keepBefore('x', 'i', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?keepBefore()}
</...@assertFails>
@@ -61,10 +61,10 @@
<@assertFails message='"m" flag'>
${'x'?keepBeforeLast('x', 'm')}
</...@assertFails>
-<@assertFails message='3'>
+<@assertFails message='Too many arguments'>
${'x'?keepBeforeLast('x', 'i', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?keepBeforeLast()}
</...@assertFails>
@@ -87,10 +87,10 @@
<@assertFails message='"m" flag'>
${'x'?keepAfter('x', 'm')}
</...@assertFails>
-<@assertFails message='3'>
+<@assertFails message='Too many arguments'>
${'x'?keepAfter('x', 'i', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?keepAfter()}
</...@assertFails>
@@ -115,10 +115,10 @@
<@assertFails message='"m" flag'>
${'x'?keepAfterLast('x', 'm')}
</...@assertFails>
-<@assertFails message='3'>
+<@assertFails message='Too many arguments'>
${'x'?keepAfterLast('x', 'i', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?keepAfterLast()}
</...@assertFails>
@@ -129,10 +129,10 @@
<@assertEquals expected='o' actual='foo'?removeBeginning('fo') />
<@assertEquals expected='' actual='foo'?removeBeginning('foo') />
<@assertEquals expected='foo' actual='foo'?removeBeginning('') />
-<@assertFails message='2'>
+<@assertFails message='Too many arguments'>
${'x'?removeBeginning('x', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?removeBeginning()}
</...@assertFails>
@@ -143,10 +143,10 @@
<@assertEquals expected='b' actual='bar'?removeEnding('ar') />
<@assertEquals expected='' actual='bar'?removeEnding('bar') />
<@assertEquals expected='bar' actual='bar'?removeEnding('') />
-<@assertFails message='2'>
+<@assertFails message='Too many arguments'>
${'x'?removeEnding('x', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?removeEnding()}
</...@assertFails>
@@ -171,10 +171,10 @@
<@assertEquals expected='https://example.com' actual="https://example.com"?ensureStartsWith("[a-z]+://", "http://") />
<@assertEquals expected='http://HTTP://example.com' actual="HTTP://example.com"?ensureStartsWith("[a-z]+://", "http://") />
<@assertEquals expected='HTTP://example.com' actual="HTTP://example.com"?ensureStartsWith("[a-z]+://", "http://", "ir") />
-<@assertFails message='4'>
+<@assertFails message='Too many arguments'>
${'x'?ensureStartsWith('x', 'x', 'x', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?ensureStartsWith()}
</...@assertFails>
@@ -185,10 +185,10 @@
<@assertEquals expected='foo' actual='foo'?ensureEndsWith('') />
<@assertEquals expected='x' actual=''?ensureEndsWith('x') />
<@assertEquals expected='' actual=''?ensureEndsWith('') />
-<@assertFails message='2'>
+<@assertFails message='Too many arguments'>
${'x'?ensureEndsWith('x', 'x')}
</...@assertFails>
-<@assertFails message='none'>
+<@assertFails message='argument'>
${'x'?ensureEndsWith()}
</...@assertFails>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/type-builtins.ftl
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/type-builtins.ftl b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/type-builtins.ftl
index 695bd76..3442824 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/type-builtins.ftl
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/type-builtins.ftl
@@ -17,10 +17,10 @@
under the License.
-->
<#setting booleanFormat="1,0">
-StNuBoMeMaHaHxSeCoCxEnInDiNo
+StNuBoHaHxSeCoCxEnInFuDiNo
<#list [
"a", 1, false,
- testmethod, testmacro,
+ testfunction, testmacro,
{"a":1}, [1], testcollection, testcollectionEx,
testnode,
bean, bean.m, bean.mOverloaded
@@ -28,8 +28,6 @@ StNuBoMeMaHaHxSeCoCxEnInDiNo
${x?isString} <#t>
${x?isNumber} <#t>
${x?isBoolean} <#t>
- ${x?isMethod} <#t>
- ${x?isMacro} <#t>
${x?isHash} <#t>
${x?isHashEx} <#t>
${x?isSequence} <#t>
@@ -37,6 +35,7 @@ StNuBoMeMaHaHxSeCoCxEnInDiNo
${x?isCollectionEx} <#t>
${x?isEnumerable} <#t>
${x?isIndexable} <#t>
+ ${x?isFunction} <#t>
${x?isDirective} <#t>
${x?isNode}<#lt>
</#list>