mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
memory
This commit is contained in:
@@ -33,6 +33,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.xdebugger.AbstractDebuggerSession;
|
||||
import com.intellij.xdebugger.breakpoints.ui.BreakpointItem;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule;
|
||||
@@ -50,7 +51,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
@@ -187,7 +187,7 @@ public class JavaDebuggerSupport extends DebuggerSupport {
|
||||
}
|
||||
|
||||
private static class JavaBreakpointPanelProvider extends BreakpointPanelProvider<Breakpoint> {
|
||||
private List<MyBreakpointManagerListener> myListeners = new CopyOnWriteArrayList<MyBreakpointManagerListener>();
|
||||
private List<MyBreakpointManagerListener> myListeners = ContainerUtil.createEmptyCOWList();
|
||||
|
||||
@NotNull
|
||||
public Collection<AbstractBreakpointPanel<Breakpoint>> getBreakpointPanels(@NotNull final Project project, @NotNull final DialogWrapper parentDialog) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.searches.SuperMethodsSearch;
|
||||
import com.intellij.psi.util.MethodSignatureBackedByPsiMethod;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.PairProcessor;
|
||||
import com.intellij.util.ProcessingContext;
|
||||
import com.intellij.util.Processor;
|
||||
@@ -38,6 +39,7 @@ public class PsiMethodPattern extends PsiMemberPattern<PsiMethod,PsiMethodPatter
|
||||
|
||||
public PsiMethodPattern withParameterCount(@NonNls final int paramCount) {
|
||||
return with(new PatternCondition<PsiMethod>("withParameterCount") {
|
||||
@Override
|
||||
public boolean accepts(@NotNull final PsiMethod method, final ProcessingContext context) {
|
||||
return method.getParameterList().getParametersCount() == paramCount;
|
||||
}
|
||||
@@ -46,12 +48,14 @@ public class PsiMethodPattern extends PsiMemberPattern<PsiMethod,PsiMethodPatter
|
||||
|
||||
/**
|
||||
* Selects the corrected method by argument types
|
||||
* @param types the array of FQN of the parameter types or wildcards.
|
||||
* @param inputTypes the array of FQN of the parameter types or wildcards.
|
||||
* The special values are:<bl><li>"?" - means any type</li><li>".." - instructs pattern to accept the rest of the arguments</li></bl>
|
||||
* @return
|
||||
*/
|
||||
public PsiMethodPattern withParameters(@NonNls final String... types) {
|
||||
public PsiMethodPattern withParameters(@NonNls final String... inputTypes) {
|
||||
final String[] types = inputTypes.length == 0 ? ArrayUtil.EMPTY_STRING_ARRAY : inputTypes;
|
||||
return with(new PatternCondition<PsiMethod>("withParameters") {
|
||||
@Override
|
||||
public boolean accepts(@NotNull final PsiMethod psiMethod, final ProcessingContext context) {
|
||||
final PsiParameterList parameterList = psiMethod.getParameterList();
|
||||
int dotsIndex = -1;
|
||||
@@ -91,7 +95,7 @@ public class PsiMethodPattern extends PsiMemberPattern<PsiMethod,PsiMethodPatter
|
||||
});
|
||||
}
|
||||
|
||||
public PsiMethodPattern definedInClass(final @NonNls String qname) {
|
||||
public PsiMethodPattern definedInClass(@NonNls final String qname) {
|
||||
return definedInClass(PsiJavaPatterns.psiClass().withQualifiedName(qname));
|
||||
}
|
||||
|
||||
@@ -103,6 +107,7 @@ public class PsiMethodPattern extends PsiMemberPattern<PsiMethod,PsiMethodPatter
|
||||
if (!processor.process(t.getContainingClass(), context)) return false;
|
||||
final Ref<Boolean> result = Ref.create(Boolean.TRUE);
|
||||
SuperMethodsSearch.search(t, null, true, false).forEach(new Processor<MethodSignatureBackedByPsiMethod>() {
|
||||
@Override
|
||||
public boolean process(final MethodSignatureBackedByPsiMethod signature) {
|
||||
if (!processor.process(signature.getMethod().getContainingClass(), context)) {
|
||||
result.set(Boolean.FALSE);
|
||||
@@ -118,6 +123,7 @@ public class PsiMethodPattern extends PsiMemberPattern<PsiMethod,PsiMethodPatter
|
||||
|
||||
public PsiMethodPattern constructor(final boolean isConstructor) {
|
||||
return with(new PatternCondition<PsiMethod>("constructor") {
|
||||
@Override
|
||||
public boolean accepts(@NotNull final PsiMethod method, final ProcessingContext context) {
|
||||
return method.isConstructor() == isConstructor;
|
||||
}
|
||||
@@ -127,6 +133,7 @@ public class PsiMethodPattern extends PsiMemberPattern<PsiMethod,PsiMethodPatter
|
||||
|
||||
public PsiMethodPattern withThrowsList(final ElementPattern<?> pattern) {
|
||||
return with(new PatternCondition<PsiMethod>("withThrowsList") {
|
||||
@Override
|
||||
public boolean accepts(@NotNull final PsiMethod method, final ProcessingContext context) {
|
||||
return pattern.accepts(method.getThrowsList());
|
||||
}
|
||||
|
||||
@@ -19,11 +19,12 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
|
||||
@@ -49,7 +50,7 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
|
||||
void findModelChanged(FindModel findModel);
|
||||
}
|
||||
|
||||
private final CopyOnWriteArrayList<FindModelObserver> myObservers = new CopyOnWriteArrayList<FindModelObserver>();
|
||||
private final List<FindModelObserver> myObservers = ContainerUtil.createEmptyCOWList();
|
||||
|
||||
public void addObserver(FindModelObserver observer) {
|
||||
myObservers.add(observer);
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.codeInsight.lookup.impl;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.ui.ClickListener;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.GridBag;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -34,7 +35,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
* @author peter
|
||||
*/
|
||||
public class Advertiser {
|
||||
private final List<String> myTexts = new CopyOnWriteArrayList<String>();
|
||||
private final List<String> myTexts = ContainerUtil.createEmptyCOWList();
|
||||
private volatile Dimension myCachedPrefSize;
|
||||
private final JPanel myComponent = new JPanel(new GridBagLayout()) {
|
||||
private JLabel mySample = createLabel();
|
||||
|
||||
@@ -87,6 +87,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
// separate method needed for tests
|
||||
public final void initializeConfigurationTypes(@NotNull final ConfigurationType[] factories) {
|
||||
Arrays.sort(factories, new Comparator<ConfigurationType>() {
|
||||
@Override
|
||||
public int compare(final ConfigurationType o1, final ConfigurationType o2) {
|
||||
return o1.getDisplayName().compareTo(o2.getDisplayName());
|
||||
}
|
||||
@@ -109,15 +110,19 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
initializeConfigurationTypes(configurationTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disposeComponent() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initComponent() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void projectOpened() {
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public RunnerAndConfigurationSettings createConfiguration(final String name, final ConfigurationFactory factory) {
|
||||
return createConfiguration(doCreateConfiguration(name, factory, true), factory);
|
||||
@@ -134,6 +139,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public RunnerAndConfigurationSettings createConfiguration(final RunConfiguration runConfiguration,
|
||||
final ConfigurationFactory factory) {
|
||||
@@ -145,14 +151,17 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void projectClosed() {
|
||||
myTemplateConfigurationsMap.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RunManagerConfig getConfig() {
|
||||
return myConfig;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ConfigurationType[] getConfigurationFactories() {
|
||||
return myTypes.clone();
|
||||
@@ -177,6 +186,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
/**
|
||||
* Template configuration is not included
|
||||
*/
|
||||
@Override
|
||||
@NotNull
|
||||
public RunConfiguration[] getConfigurations(@NotNull final ConfigurationType type) {
|
||||
|
||||
@@ -191,6 +201,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return array.toArray(new RunConfiguration[array.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public RunConfiguration[] getAllConfigurations() {
|
||||
RunConfiguration[] result = new RunConfiguration[myConfigurations.size()];
|
||||
@@ -215,6 +226,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
/**
|
||||
* Template configuration is not included
|
||||
*/
|
||||
@Override
|
||||
@NotNull
|
||||
public RunnerAndConfigurationSettings[] getConfigurationSettings(@NotNull final ConfigurationType type) {
|
||||
|
||||
@@ -240,6 +252,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return template;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addConfiguration(RunnerAndConfigurationSettings settings,
|
||||
boolean shared,
|
||||
List<BeforeRunTask> tasks, boolean addEnabledTemplateTasksIfAbsent) {
|
||||
@@ -336,6 +349,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public RunnerAndConfigurationSettings getSelectedConfiguration() {
|
||||
if (mySelectedConfigurationId == null && myLoadedSelectedConfigurationUniqueName != null) {
|
||||
@@ -344,6 +358,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return mySelectedConfigurationId == null ? null : myConfigurations.get(mySelectedConfigurationId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelectedConfiguration(@Nullable RunnerAndConfigurationSettings settings) {
|
||||
setSelectedConfigurationId(settings == null ? null : settings.getConfiguration().getUniqueID());
|
||||
if (settings != null) {
|
||||
@@ -420,6 +435,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeExternal(@NotNull final Element parentNode) throws WriteExternalException {
|
||||
writeContext(parentNode);
|
||||
for (final RunnerAndConfigurationSettings runnerAndConfigurationSettings : myTemplateConfigurationsMap.values()) {
|
||||
@@ -529,10 +545,12 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void readExternal(final Element parentNode) throws InvalidDataException {
|
||||
clear();
|
||||
|
||||
final Comparator<Element> comparator = new Comparator<Element>() {
|
||||
@Override
|
||||
public int compare(Element a, Element b) {
|
||||
final boolean aDefault = Boolean.valueOf(a.getAttributeValue("default", "false"));
|
||||
final boolean bDefault = Boolean.valueOf(b.getAttributeValue("default", "false"));
|
||||
@@ -716,11 +734,13 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getComponentName() {
|
||||
return "RunManager";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTemporaryConfiguration(@Nullable final RunnerAndConfigurationSettings tempConfiguration) {
|
||||
if (tempConfiguration == null) return;
|
||||
|
||||
@@ -748,18 +768,22 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return result.values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTemporary(@NotNull final RunConfiguration configuration) {
|
||||
return Arrays.asList(getTempConfigurations()).contains(configuration);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTemporary(@NotNull RunnerAndConfigurationSettings settings) {
|
||||
return settings.isTemporary();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public RunConfiguration[] getTempConfigurations() {
|
||||
List<RunConfiguration> configurations =
|
||||
ContainerUtil.mapNotNull(myConfigurations.values(), new NullableFunction<RunnerAndConfigurationSettings, RunConfiguration>() {
|
||||
@Override
|
||||
public RunConfiguration fun(RunnerAndConfigurationSettings settings) {
|
||||
return settings.isTemporary() ? settings.getConfiguration() : null;
|
||||
}
|
||||
@@ -767,6 +791,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return configurations.toArray(new RunConfiguration[configurations.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void makeStable(@NotNull RunConfiguration configuration) {
|
||||
RunnerAndConfigurationSettings settings = getSettings(configuration);
|
||||
if (settings != null) {
|
||||
@@ -780,11 +805,13 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public RunnerAndConfigurationSettings createRunConfiguration(String name, ConfigurationFactory type) {
|
||||
return createConfiguration(name, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConfigurationShared(final RunnerAndConfigurationSettings settings) {
|
||||
Boolean shared = mySharedConfigurations.get(settings.getConfiguration().getUniqueID());
|
||||
if (shared == null) {
|
||||
@@ -794,6 +821,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return shared != null && shared.booleanValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public <T extends BeforeRunTask> List<T> getBeforeRunTasks(Key<T> taskProviderID) {
|
||||
final List<T> tasks = new ArrayList<T>();
|
||||
@@ -822,10 +850,12 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return tasks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateConfigurationIcon(@NotNull final RunnerAndConfigurationSettings settings) {
|
||||
myIdToIcon.remove(settings.getConfiguration().getUniqueID());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Icon getConfigurationIcon(@NotNull final RunnerAndConfigurationSettings settings) {
|
||||
final int uniqueID = settings.getConfiguration().getUniqueID();
|
||||
Icon icon = myIdToIcon.get(uniqueID);
|
||||
@@ -881,6 +911,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<BeforeRunTask> getBeforeRunTasks(final RunConfiguration settings) {
|
||||
final List<BeforeRunTask> tasks = myConfigurationToBeforeTasksMap.get(settings);
|
||||
@@ -920,7 +951,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
result.add(task.clone());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return result.isEmpty() ? Collections.<BeforeRunTask>emptyList() : result;
|
||||
}
|
||||
|
||||
public void shareConfiguration(final RunConfiguration runConfiguration, final boolean shareConfiguration) {
|
||||
@@ -933,6 +964,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
if (shouldFire) fireRunConfigurationChanged(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void setBeforeRunTasks(final RunConfiguration runConfiguration, @NotNull List<BeforeRunTask> tasks, boolean addEnabledTemplateTasksIfAbsent) {
|
||||
List<BeforeRunTask> result = new ArrayList<BeforeRunTask>(tasks);
|
||||
if (addEnabledTemplateTasksIfAbsent) {
|
||||
@@ -949,7 +981,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
}
|
||||
}
|
||||
}
|
||||
myConfigurationToBeforeTasksMap.put(runConfiguration, result);
|
||||
myConfigurationToBeforeTasksMap.put(runConfiguration, result.isEmpty() ? Collections.<BeforeRunTask>emptyList() : result);
|
||||
fireBeforeRunTasksUpdated();
|
||||
}
|
||||
|
||||
@@ -958,6 +990,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
fireBeforeRunTasksUpdated();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addConfiguration(final RunnerAndConfigurationSettings settings, final boolean isShared) {
|
||||
addConfiguration(settings, isShared, getTemplateBeforeRunTasks(settings.getConfiguration()), false);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
public class ChangeSet {
|
||||
private final long myId;
|
||||
@@ -44,7 +43,7 @@ public class ChangeSet {
|
||||
public ChangeSet(long id, long timestamp) {
|
||||
myId = id;
|
||||
myTimestamp = timestamp;
|
||||
myChanges = new CopyOnWriteArrayList<Change>();
|
||||
myChanges = ContainerUtil.createEmptyCOWList();
|
||||
}
|
||||
|
||||
public ChangeSet(DataInput in) throws IOException {
|
||||
|
||||
@@ -38,6 +38,7 @@ import com.intellij.ui.tabs.impl.singleRow.SingleRowLayout;
|
||||
import com.intellij.ui.tabs.impl.singleRow.SingleRowPassInfo;
|
||||
import com.intellij.ui.tabs.impl.table.TableLayout;
|
||||
import com.intellij.ui.tabs.impl.table.TablePassInfo;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.Animator;
|
||||
import com.intellij.util.ui.JBInsets;
|
||||
import com.intellij.util.ui.TimedDeadzone;
|
||||
@@ -80,8 +81,8 @@ public class JBTabsImpl extends JComponent
|
||||
|
||||
private Insets myInnerInsets = JBInsets.NONE;
|
||||
|
||||
private final List<EventListener> myTabMouseListeners = new CopyOnWriteArrayList<EventListener>();
|
||||
private final List<TabsListener> myTabListeners = new CopyOnWriteArrayList<TabsListener>();
|
||||
private final List<EventListener> myTabMouseListeners = ContainerUtil.createEmptyCOWList();
|
||||
private final List<TabsListener> myTabListeners = ContainerUtil.createEmptyCOWList();
|
||||
private boolean myFocused;
|
||||
|
||||
private Getter<ActionGroup> myPopupGroup;
|
||||
|
||||
@@ -47,6 +47,7 @@ import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.ui.content.ContentFactory;
|
||||
import com.intellij.util.containers.CollectionFactory;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.hash.LinkedHashMap;
|
||||
import com.intellij.util.text.CharArrayUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -344,7 +345,7 @@ public class EventLog implements Notifications {
|
||||
|
||||
public static class ProjectTracker extends AbstractProjectComponent {
|
||||
private volatile EventLogConsole myConsole;
|
||||
private final List<Notification> myInitial = new CopyOnWriteArrayList<Notification>();
|
||||
private final List<Notification> myInitial = ContainerUtil.createEmptyCOWList();
|
||||
private final LogModel myProjectModel;
|
||||
|
||||
public ProjectTracker(@NotNull final Project project) {
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
package com.intellij.openapi.wm.impl;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.AWTEventListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
/**
|
||||
* @author pegov
|
||||
@@ -37,7 +37,7 @@ public class AltStateManager implements AWTEventListener {
|
||||
}
|
||||
}
|
||||
|
||||
private final List<AltListener> myListeners = new CopyOnWriteArrayList<AltListener>();
|
||||
private final List<AltListener> myListeners = ContainerUtil.createEmptyCOWList();
|
||||
|
||||
public interface AltListener {
|
||||
void altPressed();
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.intellij.openapi.util.text.StringUtilRt;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -440,7 +441,7 @@ public class ColorPicker extends JPanel implements ColorListener, DocumentListen
|
||||
|
||||
private Color myColor;
|
||||
|
||||
private CopyOnWriteArrayList<ColorListener> myListeners = new CopyOnWriteArrayList<ColorListener>();
|
||||
private CopyOnWriteArrayList<ColorListener> myListeners = ContainerUtil.createEmptyCOWList();
|
||||
private int myOpacity;
|
||||
|
||||
private ColorWheel() {
|
||||
|
||||
@@ -19,12 +19,13 @@ import com.intellij.codeInsight.hint.HintUtil;
|
||||
import com.intellij.openapi.ui.popup.Balloon;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Alexey Pegov
|
||||
@@ -37,9 +38,9 @@ class SlideComponent extends JComponent {
|
||||
private final boolean myVertical;
|
||||
private final String myTitle;
|
||||
|
||||
private CopyOnWriteArrayList<Consumer<Integer>> myListeners = new CopyOnWriteArrayList<Consumer<Integer>>();
|
||||
private final List<Consumer<Integer>> myListeners = ContainerUtil.createEmptyCOWList();
|
||||
private LightweightHint myTooltipHint;
|
||||
private JLabel myLabel = new JLabel();
|
||||
private final JLabel myLabel = new JLabel();
|
||||
|
||||
SlideComponent(String title, boolean vertical) {
|
||||
myTitle = title;
|
||||
|
||||
@@ -17,10 +17,11 @@ package com.intellij.openapi.util.registry;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.List;
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
|
||||
/**
|
||||
* @author Kirill Kalishev
|
||||
@@ -31,7 +32,7 @@ public class RegistryValue {
|
||||
private final Registry myRegistry;
|
||||
private final String myKey;
|
||||
|
||||
private final CopyOnWriteArraySet<RegistryValueListener> myListeners = new CopyOnWriteArraySet<RegistryValueListener>();
|
||||
private final List<RegistryValueListener> myListeners = ContainerUtil.createEmptyCOWList();
|
||||
|
||||
private boolean myChangedSinceStart;
|
||||
|
||||
|
||||
@@ -29,42 +29,52 @@ import java.lang.reflect.TypeVariable;
|
||||
@SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
|
||||
public class ReflectionCache {
|
||||
private static final ConcurrentFactoryMap<Class,Class> ourSuperClasses = new ConcurrentFactoryMap<Class, Class>() {
|
||||
@Override
|
||||
protected Class create(final Class key) {
|
||||
return key.getSuperclass();
|
||||
}
|
||||
};
|
||||
private static final ConcurrentFactoryMap<Class,Class[]> ourInterfaces = new ConcurrentFactoryMap<Class, Class[]>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected Class[] create(final Class key) {
|
||||
return key.getInterfaces();
|
||||
Class[] classes = key.getInterfaces();
|
||||
return classes.length == 0 ? ArrayUtil.EMPTY_CLASS_ARRAY : classes;
|
||||
}
|
||||
};
|
||||
private static final Method[] EMPTY_METHODS = new Method[0];
|
||||
private static final ConcurrentFactoryMap<Class, Method[]> ourMethods = new ConcurrentFactoryMap<Class, Method[]>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected Method[] create(final Class key) {
|
||||
return key.getMethods();
|
||||
Method[] methods = key.getMethods();
|
||||
return methods.length == 0 ? EMPTY_METHODS : methods;
|
||||
}
|
||||
};
|
||||
|
||||
private static final ConcurrentFactoryMap<Class,Boolean> ourIsInterfaces = new ConcurrentFactoryMap<Class, Boolean>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected Boolean create(final Class key) {
|
||||
return key.isInterface();
|
||||
}
|
||||
};
|
||||
private static final ConcurrentFactoryMap<Class, TypeVariable[]> ourTypeParameters = new ConcurrentFactoryMap<Class, TypeVariable[]>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected TypeVariable[] create(final Class key) {
|
||||
return key.getTypeParameters();
|
||||
}
|
||||
};
|
||||
private static final ConcurrentFactoryMap<Class, Type[]> ourGenericInterfaces = new ConcurrentFactoryMap<Class, Type[]>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected Type[] create(final Class key) {
|
||||
return key.getGenericInterfaces();
|
||||
}
|
||||
};
|
||||
private static final ConcurrentFactoryMap<ParameterizedType, Type[]> ourActualTypeArguments = new ConcurrentFactoryMap<ParameterizedType, Type[]>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected Type[] create(final ParameterizedType key) {
|
||||
return key.getActualTypeArguments();
|
||||
|
||||
+3
-3
@@ -24,6 +24,7 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.xdebugger.XDebuggerManager;
|
||||
import com.intellij.xdebugger.XDebuggerUtil;
|
||||
import com.intellij.xdebugger.breakpoints.*;
|
||||
@@ -40,14 +41,13 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public class XBreakpointPanelProvider extends BreakpointPanelProvider<XBreakpoint> {
|
||||
|
||||
private List<MyXBreakpointListener> myListeners = new CopyOnWriteArrayList<MyXBreakpointListener>();
|
||||
private final List<MyXBreakpointListener> myListeners = ContainerUtil.createEmptyCOWList();
|
||||
|
||||
@Override
|
||||
public void createBreakpointsGroupingRules(Collection<XBreakpointGroupingRule> rules) {
|
||||
@@ -173,7 +173,7 @@ public class XBreakpointPanelProvider extends BreakpointPanelProvider<XBreakpoin
|
||||
|
||||
private class AddXBreakpointAction extends AnAction {
|
||||
|
||||
private XBreakpointType<?, ?> myType;
|
||||
private final XBreakpointType<?, ?> myType;
|
||||
|
||||
public AddXBreakpointAction(XBreakpointType<?, ?> type) {
|
||||
myType = type;
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.JDOMExternalizable;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.containers.OrderedSet;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -48,7 +49,7 @@ public class ExternalizableStringSet extends OrderedSet<String>
|
||||
* note: reference to defaultValues is retained by this set!
|
||||
*/
|
||||
public ExternalizableStringSet(@NonNls String... defaultValues) {
|
||||
this.defaultValues = defaultValues;
|
||||
this.defaultValues = defaultValues.length == 0 ? ArrayUtil.EMPTY_STRING_ARRAY : defaultValues;
|
||||
for (String defaultValue : defaultValues) {
|
||||
add(defaultValue);
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.intellij.spellchecker.dictionary.EditableDictionary;
|
||||
import com.intellij.spellchecker.dictionary.EditableDictionaryLoader;
|
||||
import com.intellij.spellchecker.dictionary.Loader;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -49,11 +50,11 @@ public class BaseSpellChecker implements SpellCheckerEngine {
|
||||
private final Transformation transform = new Transformation();
|
||||
|
||||
private final Set<EditableDictionary> dictionaries = new THashSet<EditableDictionary>();
|
||||
private final List<Dictionary> bundledDictionaries = new CopyOnWriteArrayList<Dictionary>();
|
||||
private final List<Dictionary> bundledDictionaries = ContainerUtil.createEmptyCOWList();
|
||||
private final Metrics metrics = new LevenshteinDistance();
|
||||
|
||||
private AtomicBoolean myLoadingDictionaries = new AtomicBoolean(false);
|
||||
private List<Pair<Loader, Consumer<Dictionary>>> myDictionariesToLoad = new CopyOnWriteArrayList<Pair<Loader, Consumer<Dictionary>>>();
|
||||
private List<Pair<Loader, Consumer<Dictionary>>> myDictionariesToLoad = ContainerUtil.createEmptyCOWList();
|
||||
private Project myProject;
|
||||
|
||||
public BaseSpellChecker(final Project project) {
|
||||
|
||||
Reference in New Issue
Block a user