diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java index 59ee384f76..7daab2ee41 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java @@ -17,11 +17,11 @@ public class SnapshotData implements JSONSource { public static final String JSON_KEY_ATTS = "atts"; private List srcs; - private List atts; + private List atts; public SnapshotData(JsonElement json) throws FailedConnectionException { srcs = new LinkedList(); - atts = new LinkedList(); + atts = new LinkedList(); fromJSON(json); } @@ -47,7 +47,7 @@ public class SnapshotData implements JSONSource { return srcs; } - public List getAtts() { + public List getAtts() { return atts; } } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLDirectoryNode.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLDirectoryNode.java deleted file mode 100644 index dd9cf5e6a1..0000000000 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLDirectoryNode.java +++ /dev/null @@ -1,32 +0,0 @@ -package uk.ac.ic.wlgitbridge.writelatex.filestore; - -import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot; -import uk.ac.ic.wlgitbridge.writelatex.model.WLProject; - -import java.util.HashMap; -import java.util.Map; - -/** - * Created by Winston on 08/11/14. - */ -public class WLDirectoryNode { - - private final Map srcs; - private final Map atts; - private final String rootGitDirectoryPath; - - public WLDirectoryNode(String rootGitDirectoryPath, String projectName) { - this.rootGitDirectoryPath = rootGitDirectoryPath; - srcs = new HashMap(); - atts = new HashMap(); - } - - public void updateFromProject(WLProject project) { - updateFromLatestSnapshot(project.getLatestSnapshot()); - } - - private void updateFromLatestSnapshot(Snapshot snapshot) { - - } - -} diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLFileStore.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLFileStore.java index 1d1caeca43..481054c9db 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLFileStore.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/WLFileStore.java @@ -1,5 +1,6 @@ package uk.ac.ic.wlgitbridge.writelatex.filestore; +import uk.ac.ic.wlgitbridge.writelatex.filestore.node.WLDirectoryNode; import uk.ac.ic.wlgitbridge.writelatex.model.WLProject; import java.util.HashMap; @@ -25,7 +26,7 @@ public class WLFileStore { directoryNode = new WLDirectoryNode(rootGitDirectoryPath, projectName); fileStore.put(projectName, directoryNode); } - directoryNode.updateFromProject(project); + directoryNode.updateFromSnapshot(project.getLatestSnapshot()); } } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/AttachmentNode.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/AttachmentNode.java new file mode 100644 index 0000000000..325907d4ac --- /dev/null +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/AttachmentNode.java @@ -0,0 +1,16 @@ +package uk.ac.ic.wlgitbridge.writelatex.filestore.node; + +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachment; + +import java.util.Map; + +/** + * Created by Winston on 12/11/14. + */ +public class AttachmentNode extends FileNode { + + public AttachmentNode(SnapshotAttachment snapshotAttachment, Map context) { + super(snapshotAttachment, context); + } + +} diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/BlobNode.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/BlobNode.java new file mode 100644 index 0000000000..01ff99177b --- /dev/null +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/BlobNode.java @@ -0,0 +1,16 @@ +package uk.ac.ic.wlgitbridge.writelatex.filestore.node; + +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotFile; + +import java.util.Map; + +/** + * Created by Winston on 12/11/14. + */ +public class BlobNode extends FileNode { + + public BlobNode(SnapshotFile snapshotFile, Map context) { + super(snapshotFile, context); + } + +} diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/FileNode.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/FileNode.java new file mode 100644 index 0000000000..08ec4d80ac --- /dev/null +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/FileNode.java @@ -0,0 +1,25 @@ +package uk.ac.ic.wlgitbridge.writelatex.filestore.node; + +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotFile; + +import java.util.Map; + +/** + * Created by Winston on 12/11/14. + */ +public abstract class FileNode { + + private final String filePath; + private final boolean unchanged; + + public FileNode(SnapshotFile snapshotFile, Map context) { + filePath = snapshotFile.getPath(); + FileNode currentFileNode = context.get(filePath); + unchanged = currentFileNode != null && equals(currentFileNode); + } + + public String getFilePath() { + return filePath; + } + +} diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/WLDirectoryNode.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/WLDirectoryNode.java new file mode 100644 index 0000000000..516f070f38 --- /dev/null +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/node/WLDirectoryNode.java @@ -0,0 +1,54 @@ +package uk.ac.ic.wlgitbridge.writelatex.filestore.node; + +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachment; +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotFile; +import uk.ac.ic.wlgitbridge.writelatex.filestore.FileIndexStore; +import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot; +import uk.ac.ic.wlgitbridge.writelatex.model.WLProject; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Created by Winston on 08/11/14. + */ +public class WLDirectoryNode { + + private Map files; + private final FileIndexStore fileIndexes; + private final String rootGitDirectoryPath; + + public WLDirectoryNode(String rootGitDirectoryPath, String projectName) { + this.rootGitDirectoryPath = rootGitDirectoryPath; + files = new HashMap(); + fileIndexes = new FileIndexStore(); + } + + public void updateFromSnapshot(Snapshot snapshot) { + Map updatedFiles = new HashMap(); + List srcs = snapshot.getSrcs(); + List atts = snapshot.getAtts(); + for (SnapshotFile src : srcs) { + BlobNode blobNode = new BlobNode(src, files); + updatedFiles.put(blobNode.getFilePath(), blobNode); + } + for (SnapshotAttachment att : atts) { + AttachmentNode attachmentNode = new AttachmentNode(att, files); + updatedFiles.put(attachmentNode.getFilePath(), attachmentNode); + } + files = updatedFiles; + try { + throw new Throwable(); + } catch (Throwable t) { + t.printStackTrace(); + } + System.out.println(this); + } + + @Override + public String toString() { + return files.toString(); + } + +} diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java index 9cc43af1fc..0f9b86bded 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java @@ -1,6 +1,7 @@ package uk.ac.ic.wlgitbridge.writelatex.model; import uk.ac.ic.wlgitbridge.writelatex.api.request.exception.FailedConnectionException; +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachment; import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotData; import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotFile; import uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers.SnapshotInfo; @@ -20,7 +21,7 @@ public class Snapshot { private final String userEmail; private final List srcs; - private final List atts; + private final List atts; public Snapshot(SnapshotInfo info, SnapshotData data) { versionID = info.getVersionId(); @@ -58,4 +59,12 @@ public class Snapshot { return userEmail; } + public List getSrcs() { + return srcs; + } + + public List getAtts() { + return atts; + } + }