Просмотр исходного кода

Changed deleteInDirectoryApartFrom to take variadic type.

Winston Li 12 лет назад
Родитель
Сommit
555f4e1674

+ 4 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/WLDirectoryNode.java

@@ -6,6 +6,7 @@ import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachm
 import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotFile;
 import uk.ac.ic.wlgitbridge.writelatex.filestore.RepositoryFile;
 import uk.ac.ic.wlgitbridge.writelatex.filestore.store.FileIndexStore;
+import uk.ac.ic.wlgitbridge.writelatex.filestore.store.WLFileStore;
 import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 
 import java.io.File;
@@ -59,8 +60,10 @@ public class WLDirectoryNode {
 
     public WLDirectoryNode createFromRawDirectoryContents(RawDirectoryContents rawDirectoryContents, File attachmentDirectory) throws IOException, FailedConnectionException {
         Map<String, FileNode> candidateFileNodeTable = new HashMap<String, FileNode>();
+        File projectAttDirectory = new File(attachmentDirectory, projectName);
+        WLFileStore.deleteInDirectory(projectAttDirectory);
         for (Entry<String, byte[]> fileContents : rawDirectoryContents.getFileContentsTable().entrySet()) {
-            BlobNode blobNode = new BlobNode(new RepositoryFile(fileContents), fileNodeTable, new File(attachmentDirectory, projectName));
+            BlobNode blobNode = new BlobNode(new RepositoryFile(fileContents), fileNodeTable, projectAttDirectory);
             candidateFileNodeTable.put(blobNode.getFilePath(), blobNode);
         }
         return new WLDirectoryNode(projectName, candidateFileNodeTable,

+ 3 - 2
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/store/WLFileStore.java

@@ -41,9 +41,10 @@ public class WLFileStore {
         }
     }
 
-    public static void deleteInDirectoryApartFrom(File directory, String apartFrom) {
+    public static void deleteInDirectoryApartFrom(File directory, String... apartFrom) {
+        Set<String> excluded = new HashSet<String>(Arrays.asList(apartFrom));
         for (File file : directory.listFiles()) {
-            if (!file.getName().equals(apartFrom)) {
+            if (!excluded.contains(file.getName())) {
                 if (file.isDirectory()) {
                     deleteInDirectory(file);
                 }