Class FileDiffCacheImpl
- java.lang.Object
-
- com.google.gerrit.server.patch.filediff.FileDiffCacheImpl
-
- All Implemented Interfaces:
FileDiffCache
public class FileDiffCacheImpl extends Object implements 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 toObjectId.zeroId()
, the git diff will be evaluated against the empty tree.
-
-
Constructor Summary
Constructors Constructor Description FileDiffCacheImpl(com.google.common.cache.LoadingCache<FileDiffCacheKey,FileDiffOutput> cache)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FileDiffOutput
get(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 Detail
-
FileDiffCacheImpl
@Inject public FileDiffCacheImpl(com.google.common.cache.LoadingCache<FileDiffCacheKey,FileDiffOutput> cache)
-
-
Method Detail
-
module
public static com.google.inject.Module module()
-
get
public FileDiffOutput get(FileDiffCacheKey key) throws DiffNotAvailableException
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.
-
-