summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/ComponentStoreImpl.java
diff options
context:
space:
mode:
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.java36
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