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 2019/02/03 22:40:58 UTC
[freemarker] branch 3 updated: (Forward ported from 2.3-gae: Some
code cleanup around BuiltInWithParseTimeParameters.)
This is an automated email from the ASF dual-hosted git repository.
ddekany pushed a commit to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git
The following commit(s) were added to refs/heads/3 by this push:
new 5786e60 (Forward ported from 2.3-gae: Some code cleanup around BuiltInWithParseTimeParameters.)
5786e60 is described below
commit 5786e601d7990d8a7bb7190d3d8dd4196f1acfc9
Author: ddekany <dd...@apache.org>
AuthorDate: Sun Feb 3 17:15:08 2019 +0100
(Forward ported from 2.3-gae: Some code cleanup around BuiltInWithParseTimeParameters.)
---
.../org/apache/freemarker/core/ast-builtins.ast | 4 +--
.../org/apache/freemarker/core/ASTExpBuiltIn.java | 4 +--
.../core/BuiltInWithParseTimeParameters.java | 12 +++++---
...ters.java => BuiltInsWithLazyConditionals.java} | 36 +++++++++++-----------
freemarker-core/src/main/javacc/FTL.jj | 2 +-
5 files changed, 31 insertions(+), 27 deletions(-)
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 b1d073e..aac9f4b 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
@@ -41,7 +41,7 @@
#text // o.a.f.c.ASTStaticText
- content: "\n" // String
${...} // o.a.f.c.ASTInterpolation
- - content: ?then(...) // o.a.f.c.BuiltInsWithParseTimeParameters$then_BI
+ - content: ?then(...) // o.a.f.c.BuiltInsWithLazyConditionals$then_BI
- left-hand operand: x // o.a.f.c.ASTExpVariable
- right-hand operand: "then" // String
- argument value: "y" // o.a.f.c.ASTExpStringLiteral
@@ -49,7 +49,7 @@
#text // o.a.f.c.ASTStaticText
- content: "\n" // String
${...} // o.a.f.c.ASTInterpolation
- - content: ?switch(...) // o.a.f.c.BuiltInsWithParseTimeParameters$switch_BI
+ - content: ?switch(...) // o.a.f.c.BuiltInsWithLazyConditionals$switch_BI
- left-hand operand: x // o.a.f.c.ASTExpVariable
- right-hand operand: "switch" // String
- argument value: 1 // o.a.f.c.ASTExpNumberLiteral
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java
index 958be29..4102f3e 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java
@@ -256,11 +256,11 @@ abstract class ASTExpBuiltIn extends ASTExpression implements Cloneable {
putBI("sortBy", new sort_byBI());
putBI("sort", new sortBI());
putBI("split", new BuiltInsForStringsBasic.split_BI());
- putBI("switch", new BuiltInsWithParseTimeParameters.switch_BI());
+ putBI("switch", new BuiltInsWithLazyConditionals.switch_BI());
putBI("startsWith", new BuiltInsForStringsBasic.starts_withBI());
putBI("string", new BuiltInsForMultipleTypes.stringBI());
putBI("substring", new BuiltInsForStringsBasic.substringBI());
- putBI("then", new BuiltInsWithParseTimeParameters.then_BI());
+ putBI("then", new BuiltInsWithLazyConditionals.then_BI());
putBI("time", new BuiltInsForMultipleTypes.dateBI(TemplateDateModel.TIME));
putBI("timeIfUnknown", new BuiltInsForDates.dateType_if_unknownBI(TemplateDateModel.TIME));
putBI("trim", new BuiltInsForStringsBasic.trimBI());
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInWithParseTimeParameters.java b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInWithParseTimeParameters.java
index 31aeb00..3766978 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInWithParseTimeParameters.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInWithParseTimeParameters.java
@@ -21,9 +21,13 @@ package org.apache.freemarker.core;
import java.util.List;
+/**
+ * Built-in like {@code ?foo(params)}, where the parameter list must be present on parsing time, so that it can
+ * be processed on parsing time.
+ */
abstract class BuiltInWithParseTimeParameters extends SpecialBuiltIn {
- abstract void bindToParameters(List/*<ASTExpression>*/ parameters, Token openParen, Token closeParen)
+ abstract void bindToParameters(List<ASTExpression> parameters, Token openParen, Token closeParen)
throws ParseException;
@Override
@@ -33,13 +37,13 @@ abstract class BuiltInWithParseTimeParameters extends SpecialBuiltIn {
buf.append(super.getCanonicalForm());
buf.append("(");
- List/*<ASTExpression>*/args = getArgumentsAsList();
+ List<ASTExpression>args = getArgumentsAsList();
int size = args.size();
for (int i = 0; i < size; i++) {
if (i != 0) {
buf.append(", ");
}
- ASTExpression arg = (ASTExpression) args.get(i);
+ ASTExpression arg = args.get(i);
buf.append(arg.getCanonicalForm());
}
buf.append(")");
@@ -97,7 +101,7 @@ abstract class BuiltInWithParseTimeParameters extends SpecialBuiltIn {
return clone;
}
- protected abstract List getArgumentsAsList();
+ protected abstract List<ASTExpression> getArgumentsAsList();
protected abstract int getArgumentsCount();
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsWithParseTimeParameters.java b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsWithLazyConditionals.java
similarity index 80%
rename from freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsWithParseTimeParameters.java
rename to freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsWithLazyConditionals.java
index 0aa7338..757d901 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsWithParseTimeParameters.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsWithLazyConditionals.java
@@ -24,7 +24,7 @@ import java.util.List;
import org.apache.freemarker.core.model.TemplateModel;
-final class BuiltInsWithParseTimeParameters {
+final class BuiltInsWithLazyConditionals {
/**
* Behaves similarly to the ternary operator of Java.
@@ -41,12 +41,12 @@ final class BuiltInsWithParseTimeParameters {
}
@Override
- void bindToParameters(List parameters, Token openParen, Token closeParen) throws ParseException {
+ void bindToParameters(List<ASTExpression> parameters, Token openParen, Token closeParen) throws ParseException {
if (parameters.size() != 2) {
throw newArgumentCountException("requires exactly 2", openParen, closeParen);
}
- whenTrueExp = (ASTExpression) parameters.get(0);
- whenFalseExp = (ASTExpression) parameters.get(1);
+ whenTrueExp = parameters.get(0);
+ whenFalseExp = parameters.get(1);
}
@Override
@@ -64,8 +64,8 @@ final class BuiltInsWithParseTimeParameters {
}
@Override
- protected List getArgumentsAsList() {
- ArrayList args = new ArrayList(2);
+ protected List<ASTExpression> getArgumentsAsList() {
+ ArrayList<ASTExpression> args = new ArrayList<>(2);
args.add(whenTrueExp);
args.add(whenFalseExp);
return args;
@@ -81,16 +81,16 @@ final class BuiltInsWithParseTimeParameters {
}
- private BuiltInsWithParseTimeParameters() {
+ private BuiltInsWithLazyConditionals() {
// Not to be instantiated
}
static class switch_BI extends BuiltInWithParseTimeParameters {
- private List/*<ASTExpression>*/ parameters;
+ private List<ASTExpression> parameters;
@Override
- void bindToParameters(List parameters, Token openParen, Token closeParen) throws ParseException {
+ void bindToParameters(List<ASTExpression> parameters, Token openParen, Token closeParen) throws ParseException {
if (parameters.size() < 2) {
throw newArgumentCountException("must have at least 2", openParen, closeParen);
}
@@ -98,7 +98,7 @@ final class BuiltInsWithParseTimeParameters {
}
@Override
- protected List getArgumentsAsList() {
+ protected List<ASTExpression> getArgumentsAsList() {
return parameters;
}
@@ -109,15 +109,15 @@ final class BuiltInsWithParseTimeParameters {
@Override
protected ASTExpression getArgumentParameterValue(int argIdx) {
- return (ASTExpression) parameters.get(argIdx);
+ return parameters.get(argIdx);
}
@Override
protected void cloneArguments(ASTExpression clone, String replacedIdentifier, ASTExpression replacement,
ReplacemenetState replacementState) {
- ArrayList parametersClone = new ArrayList(parameters.size());
- for (int i = 0; i < parameters.size(); i++) {
- parametersClone.add(((ASTExpression) parameters.get(i))
+ ArrayList<ASTExpression> parametersClone = new ArrayList<>(parameters.size());
+ for (ASTExpression parameter : parameters) {
+ parametersClone.add(parameter
.deepCloneWithIdentifierReplaced(replacedIdentifier, replacement, replacementState));
}
((switch_BI) clone).parameters = parametersClone;
@@ -127,10 +127,10 @@ final class BuiltInsWithParseTimeParameters {
TemplateModel _eval(Environment env) throws TemplateException {
TemplateModel targetValue = target.evalToNonMissing(env);
- List parameters = this.parameters;
+ List<ASTExpression> parameters = this.parameters;
int paramCnt = parameters.size();
for (int i = 0; i + 1 < paramCnt; i += 2) {
- ASTExpression caseExp = (ASTExpression) parameters.get(i);
+ ASTExpression caseExp = parameters.get(i);
TemplateModel caseValue = caseExp.evalToNonMissing(env);
if (_EvalUtils.compare(
targetValue, target,
@@ -139,7 +139,7 @@ final class BuiltInsWithParseTimeParameters {
this, true,
false, false, false,
env)) {
- return ((ASTExpression) parameters.get(i + 1)).evalToNonMissing(env);
+ return parameters.get(i + 1).evalToNonMissing(env);
}
}
@@ -149,7 +149,7 @@ final class BuiltInsWithParseTimeParameters {
+ "case parameters, and there was no default value parameter (an additional last parameter) "
+ "eithter. ");
}
- return ((ASTExpression) parameters.get(paramCnt - 1)).evalToNonMissing(env);
+ return parameters.get(paramCnt - 1).evalToNonMissing(env);
}
}
diff --git a/freemarker-core/src/main/javacc/FTL.jj b/freemarker-core/src/main/javacc/FTL.jj
index 11e7ed2..837d769 100644
--- a/freemarker-core/src/main/javacc/FTL.jj
+++ b/freemarker-core/src/main/javacc/FTL.jj
@@ -1901,7 +1901,7 @@ ASTExpression BuiltIn(ASTExpression lhoExp) :
{
Token t = null;
ASTExpBuiltIn result;
- ArrayList/*<ASTExpression>*/ args = null;
+ ArrayList<ASTExpression> args = null;
Token openParen;
Token closeParen;
}