InMemoryRepository: Use a real Builder class

Change-Id: I161b98a58503415955a21f2720395611f439ce98
This commit is contained in:
Dave Borowitz 2015-03-17 17:19:00 -07:00
parent be08dcb6b5
commit 89b91ad406
1 changed files with 13 additions and 6 deletions

View File

@ -34,6 +34,15 @@
* 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();
}