1 package com
.intellij
.openapi
.components
.impl
.stores
;
3 import com
.intellij
.openapi
.components
.StateStorage
;
4 import com
.intellij
.util
.io
.fs
.IFile
;
11 public class CompoundSaveSession
{
12 private final Map
<StateStorage
, StateStorage
.SaveSession
> mySaveSessions
= new HashMap
<StateStorage
, StateStorage
.SaveSession
>();
14 public CompoundSaveSession(final CompoundExternalizationSession compoundExternalizationSession
) {
15 final Collection
<StateStorage
> stateStorages
= compoundExternalizationSession
.getStateStorages();
17 for (StateStorage stateStorage
: stateStorages
) {
18 mySaveSessions
.put(stateStorage
, stateStorage
.startSave(compoundExternalizationSession
.getExternalizationSession(stateStorage
)));
22 public List
<IFile
> getAllStorageFilesToSave() throws StateStorage
.StateStorageException
{
23 List
<IFile
> result
= new ArrayList
<IFile
>();
25 for (StateStorage stateStorage
: mySaveSessions
.keySet()) {
26 final StateStorage
.SaveSession saveSession
= mySaveSessions
.get(stateStorage
);
28 result
.addAll(saveSession
.getStorageFilesToSave());
34 public void save() throws StateStorage
.StateStorageException
{
35 for (StateStorage
.SaveSession saveSession
: mySaveSessions
.values()) {
40 public Set
<String
> getUsedMacros() {
41 Set
<String
> usedMacros
= new HashSet
<String
>();
43 for (StateStorage
.SaveSession saveSession
: mySaveSessions
.values()) {
44 usedMacros
.addAll(saveSession
.getUsedMacros());
50 public void finishSave() {
51 RuntimeException re
= null;
52 for (StateStorage stateStorage
: mySaveSessions
.keySet()) {
53 final StateStorage
.SaveSession saveSession
= mySaveSessions
.get(stateStorage
);
55 stateStorage
.finishSave(saveSession
);
56 } catch(RuntimeException t
) {
66 public StateStorage
.SaveSession
getSaveSession(final StateStorage storage
) {
67 return mySaveSessions
.get(storage
);
70 public List
<IFile
> getAllStorageFiles() {
71 List
<IFile
> result
= new ArrayList
<IFile
>();
72 for (StateStorage
.SaveSession saveSession
: mySaveSessions
.values()) {
73 result
.addAll(saveSession
.getAllStorageFiles());
79 public Set
<StateStorage
> getStateStorages() {
80 return mySaveSessions
.keySet();