You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/02/02 08:44:02 UTC
[groovy] branch master updated: refactor some code into java 8
style (closes #1156)
This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 9381aa5 refactor some code into java 8 style (closes #1156)
9381aa5 is described below
commit 9381aa58db42874ca5fede79feef8ae8ed16686f
Author: Ten000hours <50...@qq.com>
AuthorDate: Sat Feb 1 14:28:52 2020 +0800
refactor some code into java 8 style (closes #1156)
---
src/main/java/org/apache/groovy/util/Arrays.java | 3 +-
.../codehaus/groovy/control/CompilationUnit.java | 4 +-
.../groovy/control/CompilerConfiguration.java | 2 +-
.../codehaus/groovy/reflection/CachedClass.java | 2 +-
.../groovy/runtime/DefaultGroovyMethods.java | 107 ++++++++++++---------
.../runtime/memoize/ConcurrentCommonCache.java | 10 +-
.../org/codehaus/groovy/tools/GroovyStarter.java | 57 ++++++-----
.../ASTTransformationCollectorCodeVisitor.java | 8 +-
.../groovy/transform/ASTTransformationVisitor.java | 4 +-
.../transform/stc/StaticTypeCheckingVisitor.java | 16 +--
10 files changed, 113 insertions(+), 100 deletions(-)
diff --git a/src/main/java/org/apache/groovy/util/Arrays.java b/src/main/java/org/apache/groovy/util/Arrays.java
index de3f85e..db928d1 100644
--- a/src/main/java/org/apache/groovy/util/Arrays.java
+++ b/src/main/java/org/apache/groovy/util/Arrays.java
@@ -19,6 +19,7 @@
package org.apache.groovy.util;
import java.lang.reflect.Array;
+import java.util.Objects;
/**
* Array utilities.
@@ -40,7 +41,7 @@ public class Arrays {
int resultLength =
java.util.Arrays.stream(arrays)
- .filter(e -> null != e)
+ .filter(Objects::nonNull)
.map(e -> e.length)
.reduce(0, Integer::sum);
T[] resultArray = (T[]) Array.newInstance(arrays[0].getClass().getComponentType(), resultLength);
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index 7889a5d..02e4f1c 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -219,9 +219,7 @@ public class CompilationUnit extends ProcessingUnit {
}
}, Phases.SEMANTIC_ANALYSIS);
- addPhaseOperation((final SourceUnit source, final GeneratorContext context, final ClassNode classNode) -> {
- TraitComposer.doExtendTraits(classNode, source, this);
- }, Phases.CANONICALIZATION);
+ addPhaseOperation((final SourceUnit source, final GeneratorContext context, final ClassNode classNode) -> TraitComposer.doExtendTraits(classNode, source, this), Phases.CANONICALIZATION);
addPhaseOperation(source -> {
List<ClassNode> classes = source.getAST().getClasses();
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index e2faff7..0c1f16e 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -882,7 +882,7 @@ public class CompilerConfiguration {
}
public void setScriptExtensions(final Set<String> scriptExtensions) {
- this.scriptExtensions = Optional.ofNullable(scriptExtensions).orElseGet(() -> new LinkedHashSet<>());
+ this.scriptExtensions = Optional.ofNullable(scriptExtensions).orElseGet(LinkedHashSet::new);
}
public Set<String> getScriptExtensions() {
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
index 04a3347..0f4314d 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
@@ -113,7 +113,7 @@ public class CachedClass {
superClass.getMethods(); // populate mopMethods
Collections.addAll(mopMethods, superClass.mopMethods);
}
- Collections.sort(mopMethods, CachedMethodComparatorByName.INSTANCE);
+ mopMethods.sort(CachedMethodComparatorByName.INSTANCE);
CachedClass.this.mopMethods = mopMethods.toArray(CachedMethod.EMPTY_ARRAY);
return methods.toArray(CachedMethod.EMPTY_ARRAY);
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index 1d91ada..2e42850 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -979,56 +979,67 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
Object[] ans;
String elemType = arg.getClass().getName();
- if (elemType.equals("[I")) {
- int[] ia = (int[]) arg;
- ans = new Integer[ia.length];
- for (int i = 0; i < ia.length; i++) {
- ans[i] = ia[i];
- }
- } else if (elemType.equals("[C")) {
- char[] ca = (char[]) arg;
- ans = new Character[ca.length];
- for (int i = 0; i < ca.length; i++) {
- ans[i] = ca[i];
- }
- } else if (elemType.equals("[Z")) {
- boolean[] ba = (boolean[]) arg;
- ans = new Boolean[ba.length];
- for (int i = 0; i < ba.length; i++) {
- ans[i] = ba[i];
- }
- } else if (elemType.equals("[B")) {
- byte[] ba = (byte[]) arg;
- ans = new Byte[ba.length];
- for (int i = 0; i < ba.length; i++) {
- ans[i] = ba[i];
- }
- } else if (elemType.equals("[S")) {
- short[] sa = (short[]) arg;
- ans = new Short[sa.length];
- for (int i = 0; i < sa.length; i++) {
- ans[i] = sa[i];
- }
- } else if (elemType.equals("[F")) {
- float[] fa = (float[]) arg;
- ans = new Float[fa.length];
- for (int i = 0; i < fa.length; i++) {
- ans[i] = fa[i];
- }
- } else if (elemType.equals("[J")) {
- long[] la = (long[]) arg;
- ans = new Long[la.length];
- for (int i = 0; i < la.length; i++) {
- ans[i] = la[i];
+ switch (elemType) {
+ case "[I":
+ int[] ia = (int[]) arg;
+ ans = new Integer[ia.length];
+ for (int i = 0; i < ia.length; i++) {
+ ans[i] = ia[i];
+ }
+ break;
+ case "[C":
+ char[] ca = (char[]) arg;
+ ans = new Character[ca.length];
+ for (int i = 0; i < ca.length; i++) {
+ ans[i] = ca[i];
+ }
+ break;
+ case "[Z": {
+ boolean[] ba = (boolean[]) arg;
+ ans = new Boolean[ba.length];
+ for (int i = 0; i < ba.length; i++) {
+ ans[i] = ba[i];
+ }
+ break;
}
- } else if (elemType.equals("[D")) {
- double[] da = (double[]) arg;
- ans = new Double[da.length];
- for (int i = 0; i < da.length; i++) {
- ans[i] = da[i];
+ case "[B": {
+ byte[] ba = (byte[]) arg;
+ ans = new Byte[ba.length];
+ for (int i = 0; i < ba.length; i++) {
+ ans[i] = ba[i];
+ }
+ break;
}
- } else {
- throw new RuntimeException("sprintf(String," + arg + ")");
+ case "[S":
+ short[] sa = (short[]) arg;
+ ans = new Short[sa.length];
+ for (int i = 0; i < sa.length; i++) {
+ ans[i] = sa[i];
+ }
+ break;
+ case "[F":
+ float[] fa = (float[]) arg;
+ ans = new Float[fa.length];
+ for (int i = 0; i < fa.length; i++) {
+ ans[i] = fa[i];
+ }
+ break;
+ case "[J":
+ long[] la = (long[]) arg;
+ ans = new Long[la.length];
+ for (int i = 0; i < la.length; i++) {
+ ans[i] = la[i];
+ }
+ break;
+ case "[D":
+ double[] da = (double[]) arg;
+ ans = new Double[da.length];
+ for (int i = 0; i < da.length; i++) {
+ ans[i] = da[i];
+ }
+ break;
+ default:
+ throw new RuntimeException("sprintf(String," + arg + ")");
}
return sprintf(self, format, ans);
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java b/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
index 7032889..ace4ae6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
+++ b/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
@@ -150,12 +150,12 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
*/
@Override
public Collection<V> values() {
- return doWithReadLock(c -> c.values());
+ return doWithReadLock(EvictableCache::values);
}
@Override
public Set<Entry<K, V>> entrySet() {
- return doWithReadLock(c -> c.entrySet());
+ return doWithReadLock(Map::entrySet);
}
/**
@@ -163,7 +163,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
*/
@Override
public Set<K> keys() {
- return doWithReadLock(c -> c.keys());
+ return doWithReadLock(EvictableCache::keys);
}
/**
@@ -184,7 +184,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
*/
@Override
public int size() {
- return doWithReadLock(c -> c.size());
+ return doWithReadLock(EvictableCache::size);
}
@Override
@@ -218,7 +218,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
*/
@Override
public Map<K, V> clearAll() {
- return doWithWriteLock(c -> c.clearAll());
+ return doWithWriteLock(EvictableCache::clearAll);
}
/**
diff --git a/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java b/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
index c745510..2f3a78d 100644
--- a/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
+++ b/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
@@ -42,33 +42,38 @@ public class GroovyStarter {
// evaluate parameters
boolean hadMain=false, hadConf=false, hadCP=false;
int argsOffset = 0;
+ label:
while (args.length-argsOffset>0 && !(hadMain && hadConf && hadCP)) {
- if (args[argsOffset].equals("--classpath")) {
- if (hadCP) break;
- if (args.length==argsOffset+1) {
- exit("classpath parameter needs argument");
- }
- lc.addClassPath(args[argsOffset+1]);
- argsOffset+=2;
- hadCP=true;
- } else if (args[argsOffset].equals("--main")) {
- if (hadMain) break;
- if (args.length==argsOffset+1) {
- exit("main parameter needs argument");
- }
- lc.setMainClass(args[argsOffset+1]);
- argsOffset+=2;
- hadMain=true;
- } else if (args[argsOffset].equals("--conf")) {
- if (hadConf) break;
- if (args.length==argsOffset+1) {
- exit("conf parameter needs argument");
- }
- conf=args[argsOffset+1];
- argsOffset+=2;
- hadConf=true;
- } else {
- break;
+ switch (args[argsOffset]) {
+ case "--classpath":
+ if (hadCP) break label;
+ if (args.length == argsOffset + 1) {
+ exit("classpath parameter needs argument");
+ }
+ lc.addClassPath(args[argsOffset + 1]);
+ argsOffset += 2;
+ hadCP = true;
+ break;
+ case "--main":
+ if (hadMain) break label;
+ if (args.length == argsOffset + 1) {
+ exit("main parameter needs argument");
+ }
+ lc.setMainClass(args[argsOffset + 1]);
+ argsOffset += 2;
+ hadMain = true;
+ break;
+ case "--conf":
+ if (hadConf) break label;
+ if (args.length == argsOffset + 1) {
+ exit("conf parameter needs argument");
+ }
+ conf = args[argsOffset + 1];
+ argsOffset += 2;
+ hadConf = true;
+ break;
+ default:
+ break label;
}
}
diff --git a/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java b/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
index 8e38896..8638b72 100644
--- a/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
@@ -41,6 +41,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.stream.Stream;
@@ -252,12 +253,7 @@ public class ASTTransformationCollectorCodeVisitor extends ClassCodeVisitorSuppo
source.getErrorCollector().addError(new SimpleMessage(error, source));
}
- Stream.concat(Stream.of(transformClassNames), Stream.of(transformClasses).map(Class::getName)).forEach(transformClassName -> {
- Class<?> transformClass = loadTransformClass(transformClassName, annotation);
- if (transformClass != null) {
- verifyAndAddTransform(annotation, transformClass);
- }
- });
+ Stream.concat(Stream.of(transformClassNames), Stream.of(transformClasses).map(Class::getName)).map(transformClassName -> loadTransformClass(transformClassName, annotation)).filter(Objects::nonNull).forEach(transformClass -> verifyAndAddTransform(annotation, transformClass));
} catch (ReflectiveOperationException | RuntimeException e) {
source.getErrorCollector().addError(new ExceptionMessage(e, true, source));
}
diff --git a/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java b/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
index f3f90a7..016c0fd 100644
--- a/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
@@ -333,9 +333,7 @@ public final class ASTTransformationVisitor extends ClassCodeVisitorSupport {
if (instance instanceof CompilationUnitAware) {
((CompilationUnitAware) instance).setCompilationUnit(compilationUnit);
}
- CompilationUnit.ISourceUnitOperation suOp = source -> {
- instance.visit(new ASTNode[]{source.getAST()}, source);
- };
+ CompilationUnit.ISourceUnitOperation suOp = source -> instance.visit(new ASTNode[]{source.getAST()}, source);
if (isFirstScan) {
compilationUnit.addPhaseOperation(suOp, transformAnnotation.phase().getPhaseNumber());
} else {
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index c979287..f72aaa2 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -3374,12 +3374,16 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
}
if (mn.isEmpty() && typeCheckingContext.getEnclosingClosure() != null && args.length == 0) {
// add special handling of getDelegate() and getOwner()
- if ("getDelegate".equals(name)) {
- mn = Collections.singletonList(GET_DELEGATE);
- } else if ("getOwner".equals(name)) {
- mn = Collections.singletonList(GET_OWNER);
- } else if ("getThisObject".equals(name)) {
- mn = Collections.singletonList(GET_THISOBJECT);
+ switch (name) {
+ case "getDelegate":
+ mn = Collections.singletonList(GET_DELEGATE);
+ break;
+ case "getOwner":
+ mn = Collections.singletonList(GET_OWNER);
+ break;
+ case "getThisObject":
+ mn = Collections.singletonList(GET_THISOBJECT);
+ break;
}
}
if (mn.isEmpty()) {