From 1842dbd7a12a8d1fe2e865d045f6fcb3c5c6c805 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 26 Sep 2017 22:47:29 +0200 Subject: [PATCH] [groovy] extract GdkMethodHolder#groupByType() --- .../plugins/groovy/dgm/GdkMethodHolder.java | 30 +++++++------------ 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dgm/GdkMethodHolder.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dgm/GdkMethodHolder.java index b2b8e292dc64..015416c584ca 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dgm/GdkMethodHolder.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dgm/GdkMethodHolder.java @@ -36,6 +36,7 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrGdkMethodImpl; import org.jetbrains.plugins.groovy.lang.psi.util.GdkMethodUtil; import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil; +import java.util.Collection; import java.util.concurrent.ConcurrentMap; /** @@ -67,26 +68,17 @@ public class GdkMethodHolder { } byName.putValue(m.getName(), m); } - this.myOriginalMethodByType = new VolatileNotNullLazyValue>() { - @NotNull - @Override - protected MultiMap compute() { - MultiMap map = new MultiMap<>(); - for (PsiMethod method : byName.values()) { - map.putValue(getCategoryTargetType(method).getCanonicalText(), method); - } - return map; - } - }; + myOriginalMethodByType = VolatileNotNullLazyValue.createValue(() -> groupByType(byName.values())); + myOriginalMethodsByNameAndType = ConcurrentFactoryMap.createMap(name -> groupByType(byName.get(name))); + } - myOriginalMethodsByNameAndType = ConcurrentFactoryMap.createMap(name-> { - MultiMap map = new MultiMap<>(); - for (PsiMethod method : byName.get(name)) { - map.putValue(getCategoryTargetType(method).getCanonicalText(), method); - } - return map; - } - ); + @NotNull + private MultiMap groupByType(Collection methods) { + MultiMap map = new MultiMap<>(); + for (PsiMethod method : methods) { + map.putValue(getCategoryTargetType(method).getCanonicalText(), method); + } + return map; } private PsiType getCategoryTargetType(PsiMethod method) {