|
|
@@ -1,24 +1,16 @@
|
|
|
package uk.ac.ic.wlgitbridge.writelatex.model.db.sql;
|
|
|
|
|
|
import uk.ac.ic.wlgitbridge.util.Util;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.filestore.node.FileNode;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.filestore.store.FileIndexStore;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.query.GetFileNodesForProjectNameSQLQuery;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.query.GetProjectNamesSQLQuery;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.query.GetURLIndexTableForProjectNameSQLQuery;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.query.GetVersionIDsForProjectNameSQLQuery;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.create.CreateFileNodeTableSQLUpdate;
|
|
|
+import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.query.GetPathForURLInProjectSQLQuery;
|
|
|
+import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.query.GetLatestVersionForProjectSQLQuery;
|
|
|
import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.create.CreateProjectsTableSQLUpdate;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.create.CreateSnapshotsTableSQLUpdate;
|
|
|
import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.create.CreateURLIndexStoreSQLUpdate;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.delete.DeleteFileNodesForProjectNameSQLUpdate;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.delete.DeleteURLIndexesForProjectNameSQLUpdate;
|
|
|
-import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.insert.*;
|
|
|
+import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.delete.DeleteFilesForProjectSQLUpdate;
|
|
|
+import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.insert.AddURLIndexSQLUpdate;
|
|
|
+import uk.ac.ic.wlgitbridge.writelatex.model.db.sql.update.insert.SetProjectSQLUpdate;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.sql.*;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* Created by Winston on 17/11/14.
|
|
|
@@ -36,56 +28,29 @@ public class SQLiteWLDatabase {
|
|
|
createTables();
|
|
|
}
|
|
|
|
|
|
- public void addProject(String projectName) throws SQLException {
|
|
|
- update(new AddProjectSQLUpdate(projectName));
|
|
|
+ public void setVersionIDForProject(String projectName, int versionID) throws SQLException {
|
|
|
+ update(new SetProjectSQLUpdate(projectName, versionID));
|
|
|
}
|
|
|
|
|
|
- public void addSnapshot(String projectName, int versionID) throws SQLException {
|
|
|
- update(new AddSnapshotSQLUpdate(projectName, versionID));
|
|
|
+ public void addURLIndex(String projectName, String url, String path) throws SQLException {
|
|
|
+ update(new AddURLIndexSQLUpdate(projectName, url, path));
|
|
|
}
|
|
|
|
|
|
- public void addFileNodeBlob(String projectName, String fileName, int changed, byte[] blob) throws SQLException {
|
|
|
- update(new AddFileNodeBlobSQLUpdate(projectName, fileName, changed, blob));
|
|
|
+ public void deleteFilesForProject(String projectName, String... paths) throws SQLException {
|
|
|
+ update(new DeleteFilesForProjectSQLUpdate(projectName, paths));
|
|
|
}
|
|
|
|
|
|
- public void addFileNodeExternal(String projectName, String fileName, int changed, String url) throws SQLException {
|
|
|
- update(new AddFileNodeExternalSQLUpdate(projectName, fileName, changed, url));
|
|
|
+ public int getVersionIDForProjectName(String projectName) throws SQLException {
|
|
|
+ return query(new GetLatestVersionForProjectSQLQuery(projectName));
|
|
|
}
|
|
|
|
|
|
- public void addURLIndex(String projectName, String url, byte[] blob) throws SQLException {
|
|
|
- update(new AddURLIndexSQLUpdate(projectName, url, blob));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public List<String> getProjectNames() throws SQLException {
|
|
|
- return query(new GetProjectNamesSQLQuery());
|
|
|
- }
|
|
|
-
|
|
|
- public List<Integer> getVersionIDsForProjectName(String projectName) throws SQLException {
|
|
|
- return query(new GetVersionIDsForProjectNameSQLQuery(projectName));
|
|
|
- }
|
|
|
-
|
|
|
- public List<FileNode> getFileNodesForProjectName(String projectName, FileIndexStore fileIndexStore) throws SQLException {
|
|
|
- return query(new GetFileNodesForProjectNameSQLQuery(projectName, fileIndexStore));
|
|
|
- }
|
|
|
-
|
|
|
- public Map<String, FileNode> getURLIndexTableForProjectName(String projectName) throws SQLException {
|
|
|
- return query(new GetURLIndexTableForProjectNameSQLQuery(projectName));
|
|
|
- }
|
|
|
-
|
|
|
- public void deleteFileNodesForProjectName(String projectName) throws SQLException {
|
|
|
- update(new DeleteFileNodesForProjectNameSQLUpdate(projectName));
|
|
|
- }
|
|
|
-
|
|
|
- public void deleteURLIndexesForProjectName(String projectName) throws SQLException {
|
|
|
- update(new DeleteURLIndexesForProjectNameSQLUpdate(projectName));
|
|
|
+ public String getPathForURLInProject(String projectName, String url) throws SQLException {
|
|
|
+ return query(new GetPathForURLInProjectSQLQuery(projectName, url));
|
|
|
}
|
|
|
|
|
|
private void createTables() throws SQLException {
|
|
|
final SQLUpdate[] createTableUpdates = {
|
|
|
new CreateProjectsTableSQLUpdate(),
|
|
|
- new CreateSnapshotsTableSQLUpdate(),
|
|
|
- new CreateFileNodeTableSQLUpdate(),
|
|
|
new CreateURLIndexStoreSQLUpdate()
|
|
|
};
|
|
|
|