Package org.eclipse.jgit.lib
Class RepositoryCache
- java.lang.Object
-
- org.eclipse.jgit.lib.RepositoryCache
-
public class RepositoryCache extends Object
Cache of activeRepositoryinstances.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRepositoryCache.FileKeyLocation of a Repository, using the standard java.io.File API.static interfaceRepositoryCache.KeyAbstract hash key forRepositoryCacheentries.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidclear()Unregister all repositories from the cache.static voidclose(Repository db)Remove a repository from the cache.static Repositoryopen(RepositoryCache.Key location)Open an existing repository, reusing a cached instance if possible.static Repositoryopen(RepositoryCache.Key location, boolean mustExist)Open a repository, reusing a cached instance if possible.static voidregister(Repository db)Register one repository into the cache.
-
-
-
Method Detail
-
open
public static Repository open(RepositoryCache.Key location) throws IOException, RepositoryNotFoundException
Open an existing repository, reusing a cached instance if possible.When done with the repository, the caller must call
Repository.close()to decrement the repository's usage counter.- Parameters:
location- where the local repository is. Typically aRepositoryCache.FileKey.- Returns:
- the repository instance requested; caller must close when done.
- Throws:
IOException- the repository could not be read (likely its core.version property is not supported).RepositoryNotFoundException- there is no repository at the given location.
-
open
public static Repository open(RepositoryCache.Key location, boolean mustExist) throws IOException
Open a repository, reusing a cached instance if possible.When done with the repository, the caller must call
Repository.close()to decrement the repository's usage counter.- Parameters:
location- where the local repository is. Typically aRepositoryCache.FileKey.mustExist- If true, and the repository is not found, throwsRepositoryNotFoundException. If false, a repository instance is created and registered anyway.- Returns:
- the repository instance requested; caller must close when done.
- Throws:
IOException- the repository could not be read (likely its core.version property is not supported).RepositoryNotFoundException- There is no repository at the given location, only thrown ifmustExistis true.
-
register
public static void register(Repository db)
Register one repository into the cache.During registration the cache automatically increments the usage counter, permitting it to retain the reference. A
RepositoryCache.FileKeyfor the repository'sRepository.getDirectory()is used to index the repository in the cache.If another repository already is registered in the cache at this location, the other instance is closed.
- Parameters:
db- repository to register.
-
close
public static void close(Repository db)
Remove a repository from the cache.Removes a repository from the cache, if it is still registered here, permitting it to close.
- Parameters:
db- repository to unregister.
-
clear
public static void clear()
Unregister all repositories from the cache.
-
-