From 7d4751481085c0665a07f9a026b55e56048a072f Mon Sep 17 00:00:00 2001 From: Winston Li Date: Wed, 19 Nov 2014 18:40:34 +0000 Subject: [PATCH] Changed WLDataModel to not delete project directories. --- .../writelatex/filestore/store/WLFileStore.java | 7 ++++++- .../ic/wlgitbridge/writelatex/model/WLDataModel.java | 4 ++++ .../wlgitbridge/writelatex/model/WLProjectStore.java | 11 +++++++++++ .../writelatex/model/db/WLGBPersistentStore.java | 4 ++-- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/store/WLFileStore.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/store/WLFileStore.java index e65cfb8ce7..9d967c0567 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/store/WLFileStore.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/store/WLFileStore.java @@ -9,6 +9,7 @@ import uk.ac.ic.wlgitbridge.writelatex.filestore.GitDirectoryContents; import uk.ac.ic.wlgitbridge.writelatex.filestore.node.WLDirectoryNode; import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot; import uk.ac.ic.wlgitbridge.writelatex.model.WLProject; +import uk.ac.ic.wlgitbridge.writelatex.model.db.PersistentStoreAPI; import java.io.File; import java.io.IOException; @@ -26,11 +27,15 @@ public class WLFileStore { public WLFileStore(File rootGitDirectory) { fileStore = new HashMap(); this.rootGitDirectory = rootGitDirectory; - deleteInDirectoryApartFrom(rootGitDirectory, ".wlgb"); attDirectory = new File(rootGitDirectory, ".wlgb/atts"); attDirectory.mkdirs(); } + public WLFileStore(File rootGitDirectory, PersistentStoreAPI persistentStoreAPI) { + this(rootGitDirectory); + + } + public static void deleteInDirectory(File directory) { deleteInDirectoryApartFrom(directory); } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java index 14123e1e59..0522491126 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java @@ -30,6 +30,10 @@ public class WLDataModel implements CandidateSnapshotCallback { persistentStore = new WLGBPersistentStore(rootGitDirectory); projectStore = persistentStore.loadProjectStore(); fileStore = persistentStore.loadFileStore(); + List excludedFromDeletion = projectStore.getProjectNames(); + excludedFromDeletion.add(".wlgb"); + System.out.println("Not deleting: " + excludedFromDeletion); + WLFileStore.deleteInDirectoryApartFrom(rootGitDirectory, excludedFromDeletion.toArray(new String[]{})); } public List updateProjectWithName(String name) throws FailedConnectionException, InvalidProjectException { diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProjectStore.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProjectStore.java index 098ab0db04..060aadec41 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProjectStore.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProjectStore.java @@ -3,7 +3,9 @@ package uk.ac.ic.wlgitbridge.writelatex.model; import uk.ac.ic.wlgitbridge.writelatex.model.db.PersistentStoreAPI; import uk.ac.ic.wlgitbridge.writelatex.model.db.WLDatabaseSource; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -17,6 +19,11 @@ public class WLProjectStore implements WLDatabaseSource { projects = new HashMap(); } + public WLProjectStore(PersistentStoreAPI persistentStore) { + this(); + initFromDatabase(persistentStore); + } + public WLProject getProjectWithName(String name) { WLProject project; if (projects.containsKey(name)) { @@ -28,6 +35,10 @@ public class WLProjectStore implements WLDatabaseSource { return project; } + public List getProjectNames() { + return new ArrayList(projects.keySet()); + } + @Override public void initFromDatabase(PersistentStoreAPI database) { diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/db/WLGBPersistentStore.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/db/WLGBPersistentStore.java index 9e0b3f22ee..26c898db05 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/db/WLGBPersistentStore.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/db/WLGBPersistentStore.java @@ -30,12 +30,12 @@ public class WLGBPersistentStore implements PersistentStoreAPI { @Override public WLProjectStore loadProjectStore() { - return new WLProjectStore(); + return new WLProjectStore(this); } @Override public WLFileStore loadFileStore() { - return new WLFileStore(rootGitDirectory); + return new WLFileStore(rootGitDirectory, this); } @Override