diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java index fc2017b57a4a..ed63bf12d4c4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java @@ -29,12 +29,12 @@ import com.intellij.openapi.util.*; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.ArrayUtil; import com.intellij.util.ReflectionUtil; -import com.intellij.util.io.fs.IFile; import gnu.trove.THashMap; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.File; import java.io.IOException; import java.lang.reflect.Type; import java.util.*; @@ -46,12 +46,6 @@ public abstract class ComponentStoreImpl implements IComponentStore { private final List<SettingsSavingComponent> mySettingsSavingComponents = Collections.synchronizedList(new ArrayList<SettingsSavingComponent>()); @Nullable private SaveSessionImpl mySession; - @Deprecated - @Nullable - private StateStorage getStateStorage(@NotNull final Storage storageSpec) throws StateStorageException { - return getStateStorageManager().getStateStorage(storageSpec); - } - @Nullable protected abstract StateStorage getDefaultsStorage(); @@ -255,9 +249,10 @@ public abstract class ComponentStoreImpl implements IComponentStore { Storage[] storageSpecs = getComponentStorageSpecs(component, StateStorageOperation.READ); for (Storage storageSpec : storageSpecs) { - StateStorage stateStorage = getStateStorage(storageSpec); - if (stateStorage == null || !stateStorage.hasState(component, name, stateClass, reloadData)) continue; - state = stateStorage.getState(component, name, stateClass, state); + StateStorage stateStorage = getStateStorageManager().getStateStorage(storageSpec); + if (stateStorage != null && stateStorage.hasState(component, name, stateClass, reloadData)) { + state = stateStorage.getState(component, name, stateClass, state); + } } if (state != null) { @@ -320,17 +315,15 @@ public abstract class ComponentStoreImpl implements IComponentStore { } assert storages.length > 0; - final Class<StorageAnnotationsDefaultValues.NullStateStorageChooser> defaultClass = - StorageAnnotationsDefaultValues.NullStateStorageChooser.class; - final Class<? extends StateStorageChooser> storageChooserClass = stateSpec.storageChooser(); - final StateStorageChooser<PersistentStateComponent<?>> defaultStateStorageChooser = getDefaultStateStorageChooser(); - assert storageChooserClass != defaultClass || defaultStateStorageChooser != null : "State chooser not specified for: " + - persistentStateComponent.getClass(); - - if (storageChooserClass == defaultClass) { + if (storageChooserClass == StateStorageChooser.class) { + StateStorageChooser<PersistentStateComponent<?>> defaultStateStorageChooser = getDefaultStateStorageChooser(); + assert defaultStateStorageChooser != null : "State chooser not specified for: " + persistentStateComponent.getClass(); return defaultStateStorageChooser.selectStorages(storages, persistentStateComponent, operation); } + else if (storageChooserClass == LastStorageChooserForWrite.class) { + return LastStorageChooserForWrite.INSTANCE.selectStorages(storages, persistentStateComponent, operation); + } else { try { @SuppressWarnings("unchecked") @@ -361,7 +354,7 @@ public abstract class ComponentStoreImpl implements IComponentStore { @NotNull @Override - public List<IFile> getAllStorageFilesToSave(final boolean includingSubStructures) throws IOException { + public List<File> getAllStorageFilesToSave(final boolean includingSubStructures) throws IOException { try { return myStorageManagerSaveSession.getAllStorageFilesToSave(); } @@ -426,12 +419,10 @@ public abstract class ComponentStoreImpl implements IComponentStore { protected void commit() throws StateStorageException { final StateStorageManager storageManager = getStateStorageManager(); - final StateStorageManager.ExternalizationSession session = storageManager.startExternalization(); String[] names = ArrayUtil.toStringArray(myComponents.keySet()); Arrays.sort(names); - for (String name : names) { Object component = myComponents.get(name); if (component instanceof PersistentStateComponent) { @@ -452,10 +443,9 @@ public abstract class ComponentStoreImpl implements IComponentStore { @NotNull @Override - public List<IFile> getAllStorageFiles(final boolean includingSubStructures) { + public List<File> getAllStorageFiles(final boolean includingSubStructures) { return myStorageManagerSaveSession.getAllStorageFiles(); } - } @Override |