From 5d379c83ea72bfa9454677cd919fe469fe1c8872 Mon Sep 17 00:00:00 2001 From: Ivan Bessonov Date: Tue, 7 Nov 2017 14:25:53 +0300 Subject: [PATCH] MavenIndex - anonymous to lambda conversions --- .../idea/maven/indices/MavenIndex.java | 99 +++++++------------ 1 file changed, 35 insertions(+), 64 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndex.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndex.java index 139b5b0dc631..7d4057f06426 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndex.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndex.java @@ -21,7 +21,10 @@ import com.intellij.psi.util.CachedValue; import com.intellij.psi.util.CachedValueProvider; import com.intellij.util.CachedValueImpl; import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.io.*; +import com.intellij.util.io.DataExternalizer; +import com.intellij.util.io.EnumeratorStringDescriptor; +import com.intellij.util.io.PersistentEnumeratorBase; +import com.intellij.util.io.PersistentHashMap; import gnu.trove.THashMap; import gnu.trove.THashSet; import org.apache.lucene.search.Query; @@ -45,6 +48,7 @@ import java.net.URL; import java.util.*; import static com.intellij.openapi.util.text.StringUtil.*; +import static com.intellij.util.containers.ContainerUtil.notNullize; public class MavenIndex { private static final String CURRENT_VERSION = "5"; @@ -530,26 +534,24 @@ public class MavenIndex { } public synchronized void addArtifact(final File artifactFile) { - doIndexTask(new IndexTask() { - public Object doTask() throws Exception { - IndexedMavenId id = myData.addArtifact(artifactFile); + doIndexTask(() -> { + IndexedMavenId id = myData.addArtifact(artifactFile); - myData.hasGroupCache.put(id.groupId, true); + myData.hasGroupCache.put(id.groupId, true); - String groupWithArtifact = id.groupId + ":" + id.artifactId; + String groupWithArtifact = id.groupId + ":" + id.artifactId; - myData.hasArtifactCache.put(groupWithArtifact, true); - myData.hasVersionCache.put(groupWithArtifact + ':' + id.version, true); + myData.hasArtifactCache.put(groupWithArtifact, true); + myData.hasVersionCache.put(groupWithArtifact + ':' + id.version, true); - addToCache(myData.groupToArtifactMap, id.groupId, id.artifactId); - addToCache(myData.groupWithArtifactToVersionMap, groupWithArtifact, id.version); - if ("maven-archetype".equals(id.packaging)) { - addToCache(myData.archetypeIdToDescriptionMap, groupWithArtifact, id.version + ":" + id.description); - } - myData.flush(); - - return null; + addToCache(myData.groupToArtifactMap, id.groupId, id.artifactId); + addToCache(myData.groupWithArtifactToVersionMap, groupWithArtifact, id.version); + if ("maven-archetype".equals(id.packaging)) { + addToCache(myData.archetypeIdToDescriptionMap, groupWithArtifact, id.version + ":" + id.description); } + myData.flush(); + + return null; }, null); } @@ -561,40 +563,25 @@ public class MavenIndex { } public synchronized Collection getGroupIds() { - return doIndexTask(new IndexTask>() { - public Collection doTask() throws Exception { - return myData.groupToArtifactMap.getAllDataObjects(null); - } - }, Collections.emptySet()); + return doIndexTask(() -> myData.groupToArtifactMap.getAllDataObjects(null), Collections.emptySet()); } public synchronized Set getArtifactIds(final String groupId) { - return doIndexTask(new IndexTask>() { - public Set doTask() throws Exception { - Set result = myData.groupToArtifactMap.get(groupId); - return result == null ? Collections.emptySet() : result; - } - }, Collections.emptySet()); + return doIndexTask(() -> notNullize(myData.groupToArtifactMap.get(groupId)), Collections.emptySet()); } @TestOnly public synchronized void printInfo() { - doIndexTask(new IndexTask>() { - public Set doTask() throws Exception { - System.out.println("BaseFile: " + myData.groupToArtifactMap.getBaseFile()); - System.out.println("All data objects: " + myData.groupToArtifactMap.getAllDataObjects(null)); - return Collections.emptySet(); - } - }, Collections.emptySet()); + doIndexTask(() -> { + System.out.println("BaseFile: " + myData.groupToArtifactMap.getBaseFile()); + System.out.println("All data objects: " + myData.groupToArtifactMap.getAllDataObjects(null)); + return null; + }, null); } public synchronized Set getVersions(final String groupId, final String artifactId) { - return doIndexTask(new IndexTask>() { - public Set doTask() throws Exception { - Set result = myData.groupWithArtifactToVersionMap.get(groupId + ":" + artifactId); - return result == null ? Collections.emptySet() : result; - } - }, Collections.emptySet()); + String ga = groupId + ":" + artifactId; + return doIndexTask(() -> notNullize(myData.groupWithArtifactToVersionMap.get(ga)), Collections.emptySet()); } public synchronized boolean hasGroupId(String groupId) { @@ -616,13 +603,10 @@ public class MavenIndex { Boolean res = myData.hasVersionCache.get(groupWithArtifactWithVersion); if (res == null) { - res = doIndexTask(new IndexTask() { - @Override - public Boolean doTask() throws Exception { - String groupWithVersion = groupWithArtifactWithVersion.substring(0, groupWithArtifactWithVersion.length() - version.length() - 1); - Set set = myData.groupWithArtifactToVersionMap.get(groupWithVersion); - return set != null && set.contains(version); - } + String groupWithArtifact = groupWithArtifactWithVersion.substring(0, groupWithArtifactWithVersion.length() - version.length() - 1); + res = doIndexTask(() -> { + Set set = myData.groupWithArtifactToVersionMap.get(groupWithArtifact); + return set != null && set.contains(version); }, false); myData.hasVersionCache.put(groupWithArtifactWithVersion, res); @@ -634,12 +618,7 @@ public class MavenIndex { private boolean hasValue(final PersistentHashMap map, Map cache, final String value) { Boolean res = cache.get(value); if (res == null) { - res = doIndexTask(new IndexTask() { - public Boolean doTask() throws Exception { - return map.tryEnumerate(value) != 0; - } - }, false).booleanValue(); - + res = doIndexTask(() -> map.tryEnumerate(value) != 0, false); cache.put(value, res); } @@ -649,11 +628,7 @@ public class MavenIndex { public synchronized Set search(final Query query, final int maxResult) { if (myNotNexusIndexer != null) return Collections.emptySet(); - return doIndexTask(new IndexTask>() { - public Set doTask() throws Exception { - return myData.search(query, maxResult); - } - }, Collections.emptySet()); + return doIndexTask(() -> myData.search(query, maxResult), Collections.emptySet()); } public synchronized Set getArchetypes() { @@ -709,6 +684,7 @@ public class MavenIndex { isBroken = true; } + @FunctionalInterface private interface IndexTask { T doTask() throws Exception; } @@ -811,12 +787,7 @@ public class MavenIndex { @Nullable @Override public Result compute() { - return Result.create(join(myRegisteredRepositoryIds, ","), new ModificationTracker() { - @Override - public long getModificationCount() { - return myRegisteredRepositoryIds.hashCode(); - } - }); + return Result.create(join(myRegisteredRepositoryIds, ","), (ModificationTracker)myRegisteredRepositoryIds::hashCode); } } }