aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java
index 965aa8d8be..ae05536de5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java
@@ -34,6 +34,15 @@ import org.eclipse.jgit.util.RefList;
* is garbage collected. Closing the repository has no impact on its memory.
*/
public class InMemoryRepository extends DfsRepository {
+ /** Builder for in-memory repositories. */
+ public static class Builder
+ extends DfsRepositoryBuilder<Builder, InMemoryRepository> {
+ @Override
+ public InMemoryRepository build() throws IOException {
+ return new InMemoryRepository(this);
+ }
+ }
+
private static final AtomicInteger packId = new AtomicInteger();
private final DfsObjDatabase objdb;
@@ -48,13 +57,11 @@ public class InMemoryRepository extends DfsRepository {
* @since 2.0
*/
public InMemoryRepository(DfsRepositoryDescription repoDesc) {
- super(new DfsRepositoryBuilder<DfsRepositoryBuilder, InMemoryRepository>() {
- @Override
- public InMemoryRepository build() throws IOException {
- throw new UnsupportedOperationException();
- }
- }.setRepositoryDescription(repoDesc));
+ this(new Builder().setRepositoryDescription(repoDesc));
+ }
+ private InMemoryRepository(Builder builder) {
+ super(builder);
objdb = new MemObjDatabase(this);
refdb = new MemRefDatabase();
}