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 2019/08/26 05:50:21 UTC
[groovy] 02/02: Minor refactoring: Convert `ClassgenCallback` to
functional interface
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 5a7fa7357bf587c317825df0de907e0d512e8b5d
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sat Aug 24 01:53:39 2019 +0800
Minor refactoring: Convert `ClassgenCallback` to functional interface
---
src/main/java/groovy/lang/GroovyClassLoader.java | 2 +-
src/main/java/groovy/lang/MetaClassImpl.java | 9 +++------
src/main/java/org/codehaus/groovy/control/CompilationUnit.java | 6 +++---
3 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/main/java/groovy/lang/GroovyClassLoader.java b/src/main/java/groovy/lang/GroovyClassLoader.java
index 2d726d9..726c5d4 100644
--- a/src/main/java/groovy/lang/GroovyClassLoader.java
+++ b/src/main/java/groovy/lang/GroovyClassLoader.java
@@ -684,7 +684,7 @@ public class GroovyClassLoader extends URLClassLoader {
return new ClassCollector(loader, unit, su);
}
- public static class ClassCollector extends CompilationUnit.ClassgenCallback {
+ public static class ClassCollector implements CompilationUnit.ClassgenCallback {
private Class generatedClass;
private final GroovyClassLoader cl;
private final SourceUnit su;
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index c7ad553..8f7a723 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -79,7 +79,6 @@ import org.codehaus.groovy.util.FastArray;
import org.codehaus.groovy.util.SingleKeyHashMap;
import org.codehaus.groovy.vmplugin.VMPlugin;
import org.codehaus.groovy.vmplugin.VMPluginFactory;
-import org.objectweb.asm.ClassVisitor;
import java.beans.BeanInfo;
import java.beans.EventSetDescriptor;
@@ -3035,11 +3034,9 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
* checking won't work but that mostly affects the bytecode
* generation rather than viewing the AST
*/
- CompilationUnit.ClassgenCallback search = new CompilationUnit.ClassgenCallback() {
- public void call(ClassVisitor writer, ClassNode node) {
- if (node.getName().equals(theClass.getName())) {
- MetaClassImpl.this.classNode = node;
- }
+ CompilationUnit.ClassgenCallback search = (writer, node) -> {
+ if (node.getName().equals(theClass.getName())) {
+ MetaClassImpl.this.classNode = node;
}
};
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index 8e71645..1aa5221 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -514,9 +514,9 @@ public class CompilationUnit extends ProcessingUnit {
* for each primary and inner class. Use setClassgenCallback() before
* running compile() to set your callback.
*/
- // TODO: Convert to functional interface?
- public abstract static class ClassgenCallback {
- public abstract void call(ClassVisitor writer, ClassNode node) throws CompilationFailedException;
+ @FunctionalInterface
+ public interface ClassgenCallback {
+ void call(ClassVisitor writer, ClassNode node) throws CompilationFailedException;
}
/**