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:36:27 UTC

[groovy] 02/22: GROOVY-8258: Add macro method LINQ entry

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 3e39e7022e667173dafda9813ad0165dec29419d
Author: Daniel Sun <su...@apache.org>
AuthorDate: Mon Oct 5 00:32:21 2020 +0800

    GROOVY-8258: Add macro method LINQ entry
---
 subprojects/groovy-linq/build.gradle                       | 11 +++++++++--
 .../groovy/org/apache/groovy/linq/LinqGroovyMethods.java}  | 14 +++++++++++---
 .../{java => groovy}/org/apache/groovy/linq/Queryable.java |  0
 .../apache/groovy/linq/provider/QueryableCollection.java   |  0
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/subprojects/groovy-linq/build.gradle b/subprojects/groovy-linq/build.gradle
index 8e249dd..5c6a05b 100644
--- a/subprojects/groovy-linq/build.gradle
+++ b/subprojects/groovy-linq/build.gradle
@@ -17,8 +17,15 @@
  *  under the License.
  */
 
-
 dependencies {
-    api rootProject
+    implementation rootProject
+    implementation project(':groovy-macro')
+    testImplementation rootProject.sourceSets.test.runtimeClasspath
     testImplementation project(':groovy-test')
 }
+
+task moduleDescriptor(type: org.codehaus.groovy.gradle.WriteExtensionDescriptorTask) {
+    extensionClasses = 'org.apache.groovy.linq.LinqGroovyMethods'
+}
+
+compileJava.dependsOn moduleDescriptor
diff --git a/subprojects/groovy-linq/build.gradle b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java
similarity index 66%
copy from subprojects/groovy-linq/build.gradle
copy to subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java
index 8e249dd..936e6be 100644
--- a/subprojects/groovy-linq/build.gradle
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java
@@ -16,9 +16,17 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+package org.apache.groovy.linq;
 
+import org.codehaus.groovy.ast.expr.ClosureExpression;
+import org.codehaus.groovy.ast.expr.Expression;
+import org.codehaus.groovy.macro.runtime.Macro;
+import org.codehaus.groovy.macro.runtime.MacroContext;
 
-dependencies {
-    api rootProject
-    testImplementation project(':groovy-test')
+public class LinqGroovyMethods {
+    @Macro
+    public static Expression LINQ(MacroContext ctx, final ClosureExpression closureExpression) {
+        return null; // TODO
+    }
 }
+
diff --git a/subprojects/groovy-linq/src/main/java/org/apache/groovy/linq/Queryable.java b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/Queryable.java
similarity index 100%
rename from subprojects/groovy-linq/src/main/java/org/apache/groovy/linq/Queryable.java
rename to subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/Queryable.java
diff --git a/subprojects/groovy-linq/src/main/java/org/apache/groovy/linq/provider/QueryableCollection.java b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/provider/QueryableCollection.java
similarity index 100%
rename from subprojects/groovy-linq/src/main/java/org/apache/groovy/linq/provider/QueryableCollection.java
rename to subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/provider/QueryableCollection.java