You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/10/06 14:46:24 UTC
[groovy] branch GROOVY-8258 updated: GROOVY-8258: eliminate
redundant metadata keys
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY-8258
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY-8258 by this push:
new d4d6a22 GROOVY-8258: eliminate redundant metadata keys
d4d6a22 is described below
commit d4d6a2274709aa03ae903e9e80a88edea80ab4c6
Author: Daniel Sun <su...@apache.org>
AuthorDate: Tue Oct 6 22:46:02 2020 +0800
GROOVY-8258: eliminate redundant metadata keys
---
.../apache/groovy/linq/dsl/GinqAstWalker.groovy | 29 ++++++++++------------
1 file changed, 13 insertions(+), 16 deletions(-)
diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
index 6038e95..4707bd4 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
@@ -61,10 +61,10 @@ class GinqAstWalker implements GinqVisitor<Object> {
List<MethodCallExpression> innerJoinMethodCallExpressionList = new LinkedList<>()
List<JoinExpression> joinExpressionList = simpleGinqExpression.getJoinExpressionList()
for (JoinExpression joinExpression : joinExpressionList) {
- joinExpression.putNodeMetaData(__INNER_JOIN_METHOD_RECEIVER, fromMethodCallExpression)
- joinExpression.putNodeMetaData(__RECEIVER_ALIAS_EXPR, fromExpression.aliasExpr)
+ joinExpression.putNodeMetaData(__METHOD_CALL_RECEIVER, fromMethodCallExpression)
+ joinExpression.putNodeMetaData(__ALIAS_EXPR, fromExpression.aliasExpr)
MethodCallExpression methodCallExpression = this.visitInnerJoinExpression((InnerJoinExpression) joinExpression)
- innerJoinMethodCallExpressionList.add(methodCallExpression);
+ innerJoinMethodCallExpressionList.add(methodCallExpression)
}
if (innerJoinMethodCallExpressionList) {
@@ -72,12 +72,11 @@ class GinqAstWalker implements GinqVisitor<Object> {
}
SelectExpression selectExpression = simpleGinqExpression.getSelectExpression()
- selectExpression.putNodeMetaData(__SELECT_METHOD_RECEIVER, selectMethodReceiver)
+ selectExpression.putNodeMetaData(__METHOD_CALL_RECEIVER, selectMethodReceiver)
if (joinExpressionList) {
JoinExpression lastJoinExpression = joinExpressionList.get(joinExpressionList.size() - 1)
- selectExpression.putNodeMetaData(__FIRST_ALIAS_EXPR, lastJoinExpression.getNodeMetaData(__RECEIVER_ALIAS_EXPR))
- selectExpression.putNodeMetaData(__SECOND_ALIAS_EXPR, lastJoinExpression.aliasExpr)
+ selectExpression.putNodeMetaData(__LAST_JOIN_EXPRESSION, lastJoinExpression)
selectExpression.putNodeMetaData(__ALIAS_EXPR, new VariableExpression(__T))
} else {
@@ -107,8 +106,8 @@ class GinqAstWalker implements GinqVisitor<Object> {
@Override
MethodCallExpression visitInnerJoinExpression(InnerJoinExpression innerJoinExpression) {
- Expression receiver = innerJoinExpression.getNodeMetaData(__INNER_JOIN_METHOD_RECEIVER)
- Expression receiverAliasExpr = innerJoinExpression.getNodeMetaData(__RECEIVER_ALIAS_EXPR)
+ Expression receiver = innerJoinExpression.getNodeMetaData(__METHOD_CALL_RECEIVER)
+ Expression receiverAliasExpr = innerJoinExpression.getNodeMetaData(__ALIAS_EXPR)
OnExpression onExpression = (OnExpression) innerJoinExpression.getFilterExpression()
MethodCallExpression innerJoinMethodCallExpression = constructInnerJoinMethodCallExpression(receiver, receiverAliasExpr, innerJoinExpression, onExpression)
@@ -155,7 +154,7 @@ class GinqAstWalker implements GinqVisitor<Object> {
@Override
MethodCallExpression visitSelectExpression(SelectExpression selectExpression) {
- Expression selectMethodReceiver = selectExpression.getNodeMetaData(__SELECT_METHOD_RECEIVER)
+ Expression selectMethodReceiver = selectExpression.getNodeMetaData(__METHOD_CALL_RECEIVER)
Expression aliasExpr = selectExpression.getNodeMetaData(__ALIAS_EXPR)
Expression projectionExpr = selectExpression.getProjectionExpr()
@@ -175,8 +174,9 @@ class GinqAstWalker implements GinqVisitor<Object> {
}
private Expression correctVariablesOfProjectExpression(SelectExpression selectExpression, Expression projectionExpr) {
- final Expression firstAliasExpr = selectExpression.getNodeMetaData(__FIRST_ALIAS_EXPR)
- final Expression secondAliasExpr = selectExpression.getNodeMetaData(__SECOND_ALIAS_EXPR)
+ final JoinExpression lastJoinExpression = selectExpression.getNodeMetaData(__LAST_JOIN_EXPRESSION)
+ final Expression firstAliasExpr = lastJoinExpression.getNodeMetaData(__ALIAS_EXPR)
+ final Expression secondAliasExpr = lastJoinExpression.aliasExpr
projectionExpr = projectionExpr.transformExpression(new ExpressionTransformer() {
@Override
@@ -230,11 +230,8 @@ class GinqAstWalker implements GinqVisitor<Object> {
private static final String __FROM_EXPRESSION = "__fromExpression"
private static final String __FROM_METHOD_CALL_EXPRESSION = "__fromMethodCallExpression"
+ private static final String __LAST_JOIN_EXPRESSION = "__lastJoinExpression"
private static final String __ALIAS_EXPR = "__aliasExpr"
- private static final String __RECEIVER_ALIAS_EXPR = "__receiverAliasExpr"
- private static final String __INNER_JOIN_METHOD_RECEIVER = "__innerJoinMethodReceiver"
+ private static final String __METHOD_CALL_RECEIVER = "__methodCallReceiver"
private static final String __T = "__t"
- private static final String __FIRST_ALIAS_EXPR = "__firstAliasExpr"
- private static final String __SECOND_ALIAS_EXPR = "__secondAliasExpr"
- private static final String __SELECT_METHOD_RECEIVER = "__selectMethodReceiver"
}