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 13:49:41 UTC

[groovy] branch GROOVY-8258 updated (fd4169e -> ec53810)

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a change to branch GROOVY-8258
in repository https://gitbox.apache.org/repos/asf/groovy.git.


    from fd4169e  GROOVY-8258: add more test cases
     new 378a1ef  GROOVY-8258: simplify the ginq AST
     new ec53810  GROOVY-8258: rename class name

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/groovy/linq/GinqGroovyMethods.groovy    |  4 ++--
 .../org/apache/groovy/linq/dsl/GinqAstBuilder.java     |  2 +-
 .../dsl/{GinqBuilder.groovy => GinqAstWalker.groovy}   | 18 +++++++-----------
 .../linq/dsl/expression/SimpleGinqExpression.java      | 12 ++++++------
 4 files changed, 16 insertions(+), 20 deletions(-)
 rename subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/{GinqBuilder.groovy => GinqAstWalker.groovy} (94%)


[groovy] 01/02: GROOVY-8258: simplify the ginq AST

Posted by su...@apache.org.
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

commit 378a1ef3d008b316e146156c8790381183e84277
Author: Daniel Sun <su...@apache.org>
AuthorDate: Tue Oct 6 21:46:54 2020 +0800

    GROOVY-8258: simplify the ginq AST
---
 .../org/apache/groovy/linq/dsl/GinqAstBuilder.java       |  2 +-
 .../groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy | 16 ++++++----------
 .../groovy/linq/dsl/expression/SimpleGinqExpression.java | 12 ++++++------
 3 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstBuilder.java b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstBuilder.java
index 4905871..e3b70c6 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstBuilder.java
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstBuilder.java
@@ -88,7 +88,7 @@ public class GinqAstBuilder extends CodeVisitorSupport {
             if ("from".equals(methodName)) {
                 FromExpression fromExpression = new FromExpression(aliasExpr, dataSourceExpr);
                 fromExpression.setSourcePosition(call);
-                simpleGinqExpression.addFromExpression(fromExpression);
+                simpleGinqExpression.setFromExpression(fromExpression);
                 ginqExpression = fromExpression;
             } else if ("innerJoin".equals(methodName)) {
                 InnerJoinExpression innerJoinExpression = new InnerJoinExpression(aliasExpr, dataSourceExpr);
diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy
index b9dd39a..ed0a962 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy
@@ -53,20 +53,16 @@ class GinqBuilder implements GinqVisitor<Object> {
 
     @Override
     MethodCallExpression visitSimpleGinqExpression(SimpleGinqExpression simpleGinqExpression) {
-        List<MethodCallExpression> fromMethodCallExpressionList = new LinkedList<>()
-        List<FromExpression> fromExpressionList = simpleGinqExpression.getFromExpressionList()
-        for (FromExpression fromExpression : fromExpressionList) {
-            MethodCallExpression methodCallExpression = this.visitFromExpression(fromExpression)
-            fromMethodCallExpressionList.add(methodCallExpression)
-        }
+        FromExpression fromExpression = simpleGinqExpression.getFromExpression()
+        MethodCallExpression fromMethodCallExpression = this.visitFromExpression(fromExpression)
 
-        MethodCallExpression selectMethodReceiver = fromMethodCallExpressionList.getLast()
+        MethodCallExpression selectMethodReceiver = fromMethodCallExpression
 
         List<MethodCallExpression> innerJoinMethodCallExpressionList = new LinkedList<>()
         List<JoinExpression> joinExpressionList = simpleGinqExpression.getJoinExpressionList()
         for (JoinExpression joinExpression : joinExpressionList) {
-            joinExpression.putNodeMetaData(__INNER_JOIN_METHOD_RECEIVER, fromMethodCallExpressionList.getLast())
-            joinExpression.putNodeMetaData(__RECEIVER_ALIAS_EXPR, fromExpressionList.get(fromExpressionList.size() - 1).aliasExpr)
+            joinExpression.putNodeMetaData(__INNER_JOIN_METHOD_RECEIVER, fromMethodCallExpression)
+            joinExpression.putNodeMetaData(__RECEIVER_ALIAS_EXPR, fromExpression.aliasExpr)
             MethodCallExpression methodCallExpression = this.visitInnerJoinExpression((InnerJoinExpression) joinExpression)
             innerJoinMethodCallExpressionList.add(methodCallExpression);
         }
@@ -85,7 +81,7 @@ class GinqBuilder implements GinqVisitor<Object> {
 
             selectExpression.putNodeMetaData(__ALIAS_EXPR, new VariableExpression(__T))
         } else {
-            selectExpression.putNodeMetaData(__ALIAS_EXPR, fromExpressionList.get(fromExpressionList.size() - 1).aliasExpr)
+            selectExpression.putNodeMetaData(__ALIAS_EXPR, fromExpression.aliasExpr)
         }
 
         MethodCallExpression selectMethodCallExpression = this.visitSelectExpression(selectExpression)
diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/expression/SimpleGinqExpression.java b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/expression/SimpleGinqExpression.java
index 23d59ed..43abe75 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/expression/SimpleGinqExpression.java
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/expression/SimpleGinqExpression.java
@@ -29,7 +29,7 @@ import java.util.List;
  * @since 4.0.0
  */
 public class SimpleGinqExpression extends AbstractGinqExpression {
-    private final List<FromExpression> fromExpressionList = new ArrayList<>();
+    private FromExpression fromExpression;
     private final List<JoinExpression> joinExpressionList = new ArrayList<>();
     private SelectExpression selectExpression;
 
@@ -38,12 +38,12 @@ public class SimpleGinqExpression extends AbstractGinqExpression {
         return visitor.visitSimpleGinqExpression(this);
     }
 
-    public List<FromExpression> getFromExpressionList() {
-        return fromExpressionList;
+    public FromExpression getFromExpression() {
+        return fromExpression;
     }
 
-    public void addFromExpression(FromExpression fromExpression) {
-        this.fromExpressionList.add(fromExpression);
+    public void setFromExpression(FromExpression fromExpression) {
+        this.fromExpression = fromExpression;
     }
 
     public List<JoinExpression> getJoinExpressionList() {
@@ -65,7 +65,7 @@ public class SimpleGinqExpression extends AbstractGinqExpression {
     @Override
     public String toString() {
         return "SimpleGinqExpression{" +
-                "fromExpressionList=" + fromExpressionList +
+                "fromExpression=" + fromExpression +
                 ", selectExpression=" + selectExpression +
                 '}';
     }


[groovy] 02/02: GROOVY-8258: rename class name

Posted by su...@apache.org.
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

commit ec5381020a226949e9b6929d240a5ecc5e471ac0
Author: Daniel Sun <su...@apache.org>
AuthorDate: Tue Oct 6 21:49:06 2020 +0800

    GROOVY-8258: rename class name
---
 .../src/main/groovy/org/apache/groovy/linq/GinqGroovyMethods.groovy   | 4 ++--
 .../groovy/linq/dsl/{GinqBuilder.groovy => GinqAstWalker.groovy}      | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/GinqGroovyMethods.groovy b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/GinqGroovyMethods.groovy
index c3f0dcb..3650cb3 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/GinqGroovyMethods.groovy
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/GinqGroovyMethods.groovy
@@ -20,7 +20,7 @@ package org.apache.groovy.linq
 
 import groovy.transform.CompileStatic
 import org.apache.groovy.linq.dsl.GinqAstBuilder
-import org.apache.groovy.linq.dsl.GinqBuilder
+import org.apache.groovy.linq.dsl.GinqAstWalker
 import org.apache.groovy.linq.dsl.expression.SimpleGinqExpression
 import org.codehaus.groovy.ast.expr.ClosureExpression
 import org.codehaus.groovy.ast.expr.Expression
@@ -39,7 +39,7 @@ class GinqGroovyMethods {
         code.visit(ginqAstBuilder)
         SimpleGinqExpression simpleGinqExpression = ginqAstBuilder.getSimpleGinqExpression()
 
-        GinqBuilder ginqBuilder = new GinqBuilder()
+        GinqAstWalker ginqBuilder = new GinqAstWalker()
         MethodCallExpression selectMethodCallExpression = ginqBuilder.visitSimpleGinqExpression(simpleGinqExpression)
 
         return selectMethodCallExpression
diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
similarity index 99%
rename from subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy
rename to subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
index ed0a962..6038e95 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqBuilder.groovy
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
@@ -49,7 +49,7 @@ import static org.codehaus.groovy.ast.tools.GeneralUtils.stmt
  * @since 4.0.0
  */
 @CompileStatic
-class GinqBuilder implements GinqVisitor<Object> {
+class GinqAstWalker implements GinqVisitor<Object> {
 
     @Override
     MethodCallExpression visitSimpleGinqExpression(SimpleGinqExpression simpleGinqExpression) {