summaryrefslogtreecommitdiff
path: root/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java')
-rw-r--r--platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java32
1 files changed, 21 insertions, 11 deletions
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java
index ae2dcbc4cca1..ad025dfc8d65 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java
@@ -16,7 +16,6 @@
package com.intellij.xdebugger.impl.settings;
import com.intellij.openapi.components.*;
-import com.intellij.openapi.extensions.Extensions;
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
import com.intellij.util.xmlb.XmlSerializer;
import com.intellij.util.xmlb.annotations.AbstractCollection;
@@ -26,12 +25,15 @@ import com.intellij.util.xmlb.annotations.Tag;
import com.intellij.xdebugger.settings.XDebuggerSettings;
import org.jdom.Element;
import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.NotNull;
import java.util.*;
/**
* @author nik
+ * todo rename to XDebuggerSettingsManagerImpl
*/
+@SuppressWarnings("ClassNameSameAsAncestorName")
@State(
name = XDebuggerSettingsManager.COMPONENT_NAME,
storages = {
@@ -40,26 +42,30 @@ import java.util.*;
)
}
)
-public class XDebuggerSettingsManager implements PersistentStateComponent<XDebuggerSettingsManager.SettingsState>{
+public class XDebuggerSettingsManager extends com.intellij.xdebugger.settings.XDebuggerSettingsManager implements PersistentStateComponent<XDebuggerSettingsManager.SettingsState> {
@NonNls public static final String COMPONENT_NAME = "XDebuggerSettings";
private Map<String, XDebuggerSettings<?>> mySettingsById;
private Map<Class<? extends XDebuggerSettings>, XDebuggerSettings<?>> mySettingsByClass;
private XDebuggerDataViewSettings myDataViewSettings = new XDebuggerDataViewSettings();
private XDebuggerGeneralSettings myGeneralSettings = new XDebuggerGeneralSettings();
- public static XDebuggerSettingsManager getInstance() {
- return ServiceManager.getService(XDebuggerSettingsManager.class);
+ public static XDebuggerSettingsManager getInstanceImpl() {
+ return (XDebuggerSettingsManager)com.intellij.xdebugger.settings.XDebuggerSettingsManager.getInstance();
}
+ @Override
public SettingsState getState() {
SettingsState settingsState = new SettingsState();
settingsState.setDataViewSettings(myDataViewSettings);
settingsState.setGeneralSettings(myGeneralSettings);
for (XDebuggerSettings<?> settings : getSettingsList()) {
- SpecificSettingsState state = new SpecificSettingsState();
- state.setId(settings.getId());
- state.setSettingsElement(XmlSerializer.serialize(settings.getState(), new SkipDefaultValuesSerializationFilters()));
- settingsState.getSpecificStates().add(state);
+ Object subState = settings.getState();
+ if (subState != null) {
+ SpecificSettingsState state = new SpecificSettingsState();
+ state.setId(settings.getId());
+ state.setSettingsElement(XmlSerializer.serialize(subState, new SkipDefaultValuesSerializationFilters()));
+ settingsState.getSpecificStates().add(state);
+ }
}
return settingsState;
}
@@ -69,6 +75,8 @@ public class XDebuggerSettingsManager implements PersistentStateComponent<XDebug
return Collections.unmodifiableCollection(mySettingsById.values());
}
+ @Override
+ @NotNull
public XDebuggerDataViewSettings getDataViewSettings() {
return myDataViewSettings;
}
@@ -77,6 +85,7 @@ public class XDebuggerSettingsManager implements PersistentStateComponent<XDebug
return myGeneralSettings;
}
+ @Override
public void loadState(final SettingsState state) {
myDataViewSettings = state.getDataViewSettings();
myGeneralSettings = state.getGeneralSettings();
@@ -95,9 +104,10 @@ public class XDebuggerSettingsManager implements PersistentStateComponent<XDebug
private void initSettings() {
if (mySettingsById == null) {
- mySettingsById = new HashMap<String, XDebuggerSettings<?>>();
- mySettingsByClass = new HashMap<Class<? extends XDebuggerSettings>, XDebuggerSettings<?>>();
- for (XDebuggerSettings settings : Extensions.getExtensions(XDebuggerSettings.EXTENSION_POINT)) {
+ XDebuggerSettings[] extensions = XDebuggerSettings.EXTENSION_POINT.getExtensions();
+ mySettingsById = new LinkedHashMap<String, XDebuggerSettings<?>>(extensions.length);
+ mySettingsByClass = new LinkedHashMap<Class<? extends XDebuggerSettings>, XDebuggerSettings<?>>(extensions.length);
+ for (XDebuggerSettings settings : extensions) {
mySettingsById.put(settings.getId(), settings);
mySettingsByClass.put(settings.getClass(), settings);
}