diff options
author | Tor Norbye <tnorbye@google.com> | 2014-07-25 20:12:40 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-07-24 20:55:36 +0000 |
commit | 6044be7330c93bc8dacb0f63e62da8029f39a16f (patch) | |
tree | 0ba72f5de1949e0527874a799baa224cbe1537e0 /platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerSettingsManager.java | |
parent | b03a5855292feb8c331815f883fe64372aacd872 (diff) | |
parent | e5266e2343c8d275d79fa0be725180d0fe3a993c (diff) | |
download | idea-6044be7330c93bc8dacb0f63e62da8029f39a16f.tar.gz |
Merge "Merge remote-tracking branch 'aosp/upstream-master' into merge"
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.java | 32 |
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); } |