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 to ObjectId.zeroId(), the git diff will be evaluated against the empty tree.

  • Constructor Details

  • 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 interface FileDiffCache
      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 interface FileDiffCache
      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.