Class FileDiffCacheImpl
java.lang.Object
com.google.gerrit.server.patch.filediff.FileDiffCacheImpl
- All Implemented Interfaces:
FileDiffCache
Cache for the single file diff between two commits for a single file path. This cache adds extra
Gerrit logic such as identifying edits due to rebase.
If the FileDiffCacheKey.oldCommit()
is equal to ObjectId.zeroId()
, the git
diff will be evaluated against the empty tree.
-
Constructor Summary
ConstructorsConstructorDescriptionFileDiffCacheImpl
(com.google.common.cache.LoadingCache<FileDiffCacheKey, FileDiffOutput> cache) -
Method Summary
Modifier and TypeMethodDescriptionget
(FileDiffCacheKey key) Returns the file diff for a single file path identified by its key.com.google.common.collect.ImmutableMap<FileDiffCacheKey,
FileDiffOutput> getAll
(Iterable<FileDiffCacheKey> keys) Returns the file diff for a collection of file paths identified by their keys.static com.google.inject.Module
module()
-
Constructor Details
-
FileDiffCacheImpl
@Inject public FileDiffCacheImpl(com.google.common.cache.LoadingCache<FileDiffCacheKey, FileDiffOutput> cache)
-
-
Method Details
-
module
public static com.google.inject.Module module() -
get
Description copied from interface:FileDiffCache
Returns the file diff for a single file path identified by its key.- Specified by:
get
in interfaceFileDiffCache
- Parameters:
key
- identifies two git commits, a specific file path and other diff parameters.- Returns:
- the file diff for a single file path identified by its key.
- Throws:
DiffNotAvailableException
- if the commit IDs of the key are invalid for this project or if file contents could not be read.
-
getAll
public com.google.common.collect.ImmutableMap<FileDiffCacheKey,FileDiffOutput> getAll(Iterable<FileDiffCacheKey> keys) throws DiffNotAvailableException Description copied from interface:FileDiffCache
Returns the file diff for a collection of file paths identified by their keys.- Specified by:
getAll
in interfaceFileDiffCache
- Parameters:
keys
- identifying different file paths of different projects.- Returns:
- a map of the input keys to their corresponding git file diffs.
- Throws:
DiffNotAvailableException
- if the diff failed to be evaluated for one or more of the input keys due to invalid commit IDs or if file contents could not be read.
-