diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2010-04-19 12:22:45 +0200 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2010-04-19 12:22:45 +0200 |
commit | a8e277ae32d43459cb5f5b893cdeaa546b5f55dc (patch) | |
tree | 23a8ae1e880a3e52556957030fd2da597363ebeb | |
parent | 5aaef587ec746145959482568c83172455a19ac9 (diff) | |
download | gimd-a8e277ae32d43459cb5f5b893cdeaa546b5f55dc.tar.gz |
Add list of supported file types to Database trait.
Make Gimd Database aware of FileTypes it supports. This will be useful if
we want to initialise to traverse all files stored in database to for
example index them.
Change-Id: Ibbba331ec6601bfb57486550b19d5c316243b5bd
Signed-off-by: Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com>
-rw-r--r-- | src/main/scala/com/google/gimd/Database.scala | 5 | ||||
-rw-r--r-- | src/main/scala/com/google/gimd/jgit/JGitDatabase.scala | 2 | ||||
-rw-r--r-- | src/test/scala/com/google/gimd/jgit/JGitDatabaseTestCase.scala | 16 |
3 files changed, 15 insertions, 8 deletions
diff --git a/src/main/scala/com/google/gimd/Database.scala b/src/main/scala/com/google/gimd/Database.scala index 9a34055..14923bb 100644 --- a/src/main/scala/com/google/gimd/Database.scala +++ b/src/main/scala/com/google/gimd/Database.scala @@ -21,6 +21,11 @@ import query.Predicate trait Database { /** + * List of all file types that can be stored in Database. + */ + val fileTypes: List[FileType[_]] + + /** * Query database for all user objects of type U stored in files of * type FileType[W] satisfying predicate p using latest Snapshot of Database. * diff --git a/src/main/scala/com/google/gimd/jgit/JGitDatabase.scala b/src/main/scala/com/google/gimd/jgit/JGitDatabase.scala index f3da9fc..2ef9d9c 100644 --- a/src/main/scala/com/google/gimd/jgit/JGitDatabase.scala +++ b/src/main/scala/com/google/gimd/jgit/JGitDatabase.scala @@ -25,7 +25,7 @@ import org.spearce.jgit.lib.RefUpdate.Result import org.spearce.jgit.dircache.{DirCache, DirCacheEditor, DirCacheEntry} import org.spearce.jgit.revwalk.{RevCommit, RevTree, RevWalk} -final class JGitDatabase(branch: JGitBranch) extends Database { +final class JGitDatabase(val fileTypes: List[FileType[_]], branch: JGitBranch) extends Database { /** * The maximal number of merge/transaction rebase retries. diff --git a/src/test/scala/com/google/gimd/jgit/JGitDatabaseTestCase.scala b/src/test/scala/com/google/gimd/jgit/JGitDatabaseTestCase.scala index 36f5eab..aa783f1 100644 --- a/src/test/scala/com/google/gimd/jgit/JGitDatabaseTestCase.scala +++ b/src/test/scala/com/google/gimd/jgit/JGitDatabaseTestCase.scala @@ -41,6 +41,8 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { def name(m: Message) = userType.name(m) } + private val fileTypes = SimpleMessageFileType :: Nil + @Test def allPaths { val first = SimpleMessage("first", 1) @@ -53,7 +55,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { ) commit(files) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) val foundFiles = db.latestSnapshot.all(SimpleMessageFileType).toList @@ -73,7 +75,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { ) commit(files) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) val foundFiles = db.latestSnapshot.all(SimpleMessageFileType).toList @@ -94,7 +96,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { val commitId = createCommit("Test commit", treeId) moveMaster(commitId) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) val foundFiles = db.latestSnapshot.all(SimpleMessageFileType).toList assertEquals(Nil, foundFiles) @@ -113,7 +115,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { writeMessage(SimpleMessageType, second)) commit(paths zip blobIds) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) db.modify { snapshot => val sms = snapshot.query(SimpleMessageFileType, (sm: SimpleMessage) => sm.name == "second") @@ -142,7 +144,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { writeMessage(SimpleMessageType, second)) commit(paths zip blobIds) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) val third = SimpleMessage("third", 3) @@ -174,7 +176,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { ) commit(files) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) db.modify { snapshot => val sms = snapshot.query(SimpleMessageFileType, (sm: SimpleMessage) => sm.name == "second") @@ -198,7 +200,7 @@ final class JGitDatabaseTestCase extends AbstractJGitTestCase { commit(List(path -> blobId)) - val db = new JGitDatabase(masterBranch) + val db = new JGitDatabase(fileTypes, masterBranch) val result = db.modifyAndReturn { _ => (DatabaseModification.empty, expected) } |