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/11/03 15:42:22 UTC
[groovy] 06/18: Trivial refactoring: Can be replaced with single
'Map.computeIfAbsent' method call
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit c63e282e224fc9e374817521ead7b97c76ea312d
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Nov 3 21:34:26 2019 +0800
Trivial refactoring: Can be replaced with single 'Map.computeIfAbsent' method call
(cherry picked from commit 76e82806c46366bfbd0cdecc631a91c4d6597387)
---
.../java/groovy/util/FactoryBuilderSupport.java | 6 +-----
.../groovy/ast/decompiled/AsmDecompiler.java | 5 +----
.../groovy/runtime/DefaultGroovyMethods.java | 7 +------
.../runtime/metaclass/MetaClassRegistryImpl.java | 24 ++++------------------
.../stc/GroovyTypeCheckingExtensionSupport.java | 6 +-----
.../transform/stc/StaticTypeCheckingVisitor.java | 12 ++---------
6 files changed, 10 insertions(+), 50 deletions(-)
diff --git a/src/main/java/groovy/util/FactoryBuilderSupport.java b/src/main/java/groovy/util/FactoryBuilderSupport.java
index aeffa68..be85429 100644
--- a/src/main/java/groovy/util/FactoryBuilderSupport.java
+++ b/src/main/java/groovy/util/FactoryBuilderSupport.java
@@ -169,11 +169,7 @@ public abstract class FactoryBuilderSupport extends Binding {
}
private Set<String> getRegistrationGroup(String name) {
- Set<String> group = registrationGroup.get(name);
- if (group == null ) {
- group = new TreeSet<String>();
- registrationGroup.put(name, group);
- }
+ Set<String> group = registrationGroup.computeIfAbsent(name, k -> new TreeSet<String>());
return group;
}
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java b/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
index 4e0f922..bee97c0 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
@@ -140,10 +140,7 @@ public abstract class AsmDecompiler {
@Override
public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
if (stub.parameterAnnotations == null) stub.parameterAnnotations = new HashMap<Integer, List<AnnotationStub>>(1);
- List<AnnotationStub> list = stub.parameterAnnotations.get(parameter);
- if (list == null) {
- stub.parameterAnnotations.put(parameter, list = new ArrayList<AnnotationStub>());
- }
+ List<AnnotationStub> list = stub.parameterAnnotations.computeIfAbsent(parameter, k -> new ArrayList<AnnotationStub>());
AnnotationStub annotationStub = new AnnotationStub(desc);
list.add(annotationStub);
return readAnnotationMembers(annotationStub);
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index 64b3603..3811036 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -5917,12 +5917,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
* @since 1.5.0
*/
protected static <K, T> void groupAnswer(final Map<K, List<T>> answer, T element, K value) {
- List<T> groupedElements = answer.get(value);
-
- if (null == groupedElements) {
- groupedElements = new ArrayList<T>();
- answer.put(value, groupedElements);
- }
+ List<T> groupedElements = answer.computeIfAbsent(value, k -> new ArrayList<T>());
groupedElements.add(element);
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
index ec9fe1b..5edca84 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
@@ -210,11 +210,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
newParams
);
final CachedClass declClass = method.getDeclaringClass();
- List<MetaMethod> arr = map.get(declClass);
- if (arr == null) {
- arr = new ArrayList<MetaMethod>(4);
- map.put(declClass, arr);
- }
+ List<MetaMethod> arr = map.computeIfAbsent(declClass, k -> new ArrayList<MetaMethod>(4));
arr.add(method);
instanceMethods.add(method);
}
@@ -231,11 +227,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
if (Modifier.isStatic(mod) && Modifier.isPublic(mod) && method.getAnnotation(Deprecated.class) == null) {
CachedClass[] paramTypes = method.getParameterTypes();
if (paramTypes.length > 0) {
- List<MetaMethod> arr = map.get(paramTypes[0]);
- if (arr == null) {
- arr = new ArrayList<MetaMethod>(4);
- map.put(paramTypes[0], arr);
- }
+ List<MetaMethod> arr = map.computeIfAbsent(paramTypes[0], k -> new ArrayList<MetaMethod>(4));
if (useInstanceMethods) {
final NewInstanceMetaMethod metaMethod = new NewInstanceMetaMethod(method);
arr.add(metaMethod);
@@ -255,11 +247,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
try {
MetaMethod method = (MetaMethod) aClass.getDeclaredConstructor().newInstance();
final CachedClass declClass = method.getDeclaringClass();
- List<MetaMethod> arr = map.get(declClass);
- if (arr == null) {
- arr = new ArrayList<MetaMethod>(4);
- map.put(declClass, arr);
- }
+ List<MetaMethod> arr = map.computeIfAbsent(declClass, k -> new ArrayList<MetaMethod>(4));
arr.add(method);
instanceMethods.add(method);
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { /* ignore */
@@ -527,11 +515,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
List<MetaMethod> metaMethods = module.getMetaMethods();
for (MetaMethod metaMethod : metaMethods) {
CachedClass cachedClass = metaMethod.getDeclaringClass();
- List<MetaMethod> methods = map.get(cachedClass);
- if (methods == null) {
- methods = new ArrayList<MetaMethod>(4);
- map.put(cachedClass, methods);
- }
+ List<MetaMethod> methods = map.computeIfAbsent(cachedClass, k -> new ArrayList<MetaMethod>(4));
methods.add(metaMethod);
if (metaMethod.isStatic()) {
staticMethods.add(metaMethod);
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
index d456331..0852cf3 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
@@ -441,11 +441,7 @@ public class GroovyTypeCheckingExtensionSupport extends AbstractTypeCheckingExte
if (methodName == null) {
return InvokerHelper.invokeMethod(extension, name, args);
}
- List<Closure> closures = extension.eventHandlers.get(methodName);
- if (closures == null) {
- closures = new LinkedList<Closure>();
- extension.eventHandlers.put(methodName, closures);
- }
+ List<Closure> closures = extension.eventHandlers.computeIfAbsent(methodName, k -> new LinkedList<Closure>());
closures.add((Closure) argsArray[0]);
return null;
} 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 226064a..37abc13 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -1145,11 +1145,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
protected void pushInstanceOfTypeInfo(final Expression objectOfInstanceOf, final Expression typeExpression) {
final Map<Object, List<ClassNode>> tempo = typeCheckingContext.temporaryIfBranchTypeInformation.peek();
Object key = extractTemporaryTypeInfoKey(objectOfInstanceOf);
- List<ClassNode> potentialTypes = tempo.get(key);
- if (potentialTypes == null) {
- potentialTypes = new LinkedList<ClassNode>();
- tempo.put(key, potentialTypes);
- }
+ List<ClassNode> potentialTypes = tempo.computeIfAbsent(key, k -> new LinkedList<ClassNode>());
potentialTypes.add(typeExpression.getType());
}
@@ -4225,11 +4221,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
((Parameter) accessedVariable).putNodeMetaData(INFERRED_TYPE, cn);
}
if (var.isClosureSharedVariable() && cn != null) {
- List<ClassNode> assignedTypes = typeCheckingContext.closureSharedVariablesAssignmentTypes.get(var);
- if (assignedTypes == null) {
- assignedTypes = new LinkedList<ClassNode>();
- typeCheckingContext.closureSharedVariablesAssignmentTypes.put(var, assignedTypes);
- }
+ List<ClassNode> assignedTypes = typeCheckingContext.closureSharedVariablesAssignmentTypes.computeIfAbsent(var, k -> new LinkedList<ClassNode>());
assignedTypes.add(cn);
}
if (!typeCheckingContext.temporaryIfBranchTypeInformation.empty()) {