mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
avoid empty set creation
This commit is contained in:
@@ -25,13 +25,11 @@ import com.intellij.openapi.vfs.*;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.descriptors.*;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
@@ -129,9 +127,9 @@ public class ConfigFileContainerImpl extends SimpleModificationTracker implement
|
||||
return myMetaDataProvider;
|
||||
}
|
||||
|
||||
public void updateDescriptors(final MultiValuesMap<ConfigFileMetaData, ConfigFileInfo> descriptorsMap) {
|
||||
Set<ConfigFile> toDelete = new HashSet<ConfigFile>(myConfigFiles.values());
|
||||
Set<ConfigFile> added = new HashSet<ConfigFile>();
|
||||
public void updateDescriptors(@NotNull MultiValuesMap<ConfigFileMetaData, ConfigFileInfo> descriptorsMap) {
|
||||
Set<ConfigFile> toDelete = myConfigFiles.isEmpty() ? Collections.<ConfigFile>emptySet() : new HashSet<ConfigFile>(myConfigFiles.values());
|
||||
Set<ConfigFile> added = null;
|
||||
|
||||
for (Map.Entry<ConfigFileMetaData, Collection<ConfigFileInfo>> entry : descriptorsMap.entrySet()) {
|
||||
ConfigFileMetaData metaData = entry.getKey();
|
||||
@@ -139,8 +137,7 @@ public class ConfigFileContainerImpl extends SimpleModificationTracker implement
|
||||
final Collection<ConfigFile> oldDescriptors = myConfigFiles.get(metaData);
|
||||
if (oldDescriptors != null) {
|
||||
for (ConfigFile descriptor : oldDescriptors) {
|
||||
if (newDescriptors.contains(descriptor.getInfo())) {
|
||||
newDescriptors.remove(descriptor.getInfo());
|
||||
if (newDescriptors.remove(descriptor.getInfo())) {
|
||||
toDelete.remove(descriptor);
|
||||
}
|
||||
}
|
||||
@@ -149,6 +146,9 @@ public class ConfigFileContainerImpl extends SimpleModificationTracker implement
|
||||
final ConfigFileImpl configFile = new ConfigFileImpl(this, configuration);
|
||||
Disposer.register(this, configFile);
|
||||
myConfigFiles.put(metaData, configFile);
|
||||
if (added == null) {
|
||||
added = new THashSet<ConfigFile>();
|
||||
}
|
||||
added.add(configFile);
|
||||
}
|
||||
}
|
||||
@@ -159,9 +159,11 @@ public class ConfigFileContainerImpl extends SimpleModificationTracker implement
|
||||
}
|
||||
|
||||
myCachedConfigFiles = null;
|
||||
for (ConfigFile configFile : added) {
|
||||
incModificationCount();
|
||||
myDispatcher.getMulticaster().configFileAdded(configFile);
|
||||
if (added != null) {
|
||||
for (ConfigFile configFile : added) {
|
||||
incModificationCount();
|
||||
myDispatcher.getMulticaster().configFileAdded(configFile);
|
||||
}
|
||||
}
|
||||
for (ConfigFile configFile : toDelete) {
|
||||
incModificationCount();
|
||||
|
||||
Reference in New Issue
Block a user