Class PackBitmapIndexRemapper

java.lang.Object
org.eclipse.jgit.internal.storage.file.PackBitmapIndexRemapper
All Implemented Interfaces:
Iterable<PackBitmapIndexRemapper.Entry>, PackBitmapIndex

public class PackBitmapIndexRemapper extends Object implements PackBitmapIndex, Iterable<PackBitmapIndexRemapper.Entry>
A PackBitmapIndex that remaps the bitmaps in the previous index to the positions in the new pack index. Note, unlike typical PackBitmapIndex implementations this implementation is not thread safe, as it is intended to be used with a PackBitmapIndexBuilder, which is also not thread safe.
  • Method Details

    • newPackBitmapIndex

      public static PackBitmapIndexRemapper newPackBitmapIndex(BitmapIndex prevBitmapIndex, PackBitmapIndex newIndex)
      A PackBitmapIndex that maps the positions in the prevBitmapIndex to the ones in the newIndex.
      Parameters:
      prevBitmapIndex - the bitmap index with the old mapping.
      newIndex - the bitmap index with the new mapping.
      Returns:
      a bitmap index that attempts to do the mapping between the two.
    • findPosition

      public int findPosition(AnyObjectId objectId)
      Description copied from interface: PackBitmapIndex
      Finds the position in the bitmap of the object.
      Specified by:
      findPosition in interface PackBitmapIndex
      Parameters:
      objectId - the id for which the bitmap position will be found.
      Returns:
      the bitmap id or -1 if the object was not found.
    • getObject

      public ObjectId getObject(int position) throws IllegalArgumentException
      Description copied from interface: PackBitmapIndex
      Get the object at the bitmap position.
      Specified by:
      getObject in interface PackBitmapIndex
      Parameters:
      position - the offset in the bitmap which corresponds to an object of interest. This position is the same as the order of the object in the PackFile.
      Returns:
      the ObjectId.
      Throws:
      IllegalArgumentException - when the item is not found.
    • getObjectCount

      public int getObjectCount()
      Description copied from interface: PackBitmapIndex
      Obtain the total number of objects described by this index. getObjectCount() - 1 is the largest bit that will be set in a bitmap.
      Specified by:
      getObjectCount in interface PackBitmapIndex
      Returns:
      number of objects in this index, and likewise in the associated pack that this index was generated from.
    • getBaseBitmapCount

      public int getBaseBitmapCount()
      Description copied from interface: PackBitmapIndex
      Returns the number of bitmaps in this bitmap index ready to use, not XOR'ed against other entries.
      Specified by:
      getBaseBitmapCount in interface PackBitmapIndex
      Returns:
      the number of bitmaps in this bitmap index ready to use.
    • getBaseBitmapSizeInBytes

      public long getBaseBitmapSizeInBytes()
      Description copied from interface: PackBitmapIndex
      Current size in bytes of all base bitmaps in the index. Resolving xors for bitmaps can affect this size.
      Specified by:
      getBaseBitmapSizeInBytes in interface PackBitmapIndex
      Returns:
      Current size (in bytes) of all base bitmaps in this index.
    • getXorBitmapCount

      public int getXorBitmapCount()
      Description copied from interface: PackBitmapIndex
      Returns the number of bitmaps in this bitmap index XOR'ed against other entries.
      Specified by:
      getXorBitmapCount in interface PackBitmapIndex
      Returns:
      the number of bitmaps in this bitmap index represented as XOR masks.
    • getXorBitmapSizeInBytes

      public long getXorBitmapSizeInBytes()
      Description copied from interface: PackBitmapIndex
      Current size in bytes of all XOR'ed bitmaps in the index. Resolving xors for bitmaps can affect this size.
      Specified by:
      getXorBitmapSizeInBytes in interface PackBitmapIndex
      Returns:
      Current size (in bytes) of all xor bitmaps in this index.
    • ofObjectType

      public com.googlecode.javaewah.EWAHCompressedBitmap ofObjectType(com.googlecode.javaewah.EWAHCompressedBitmap bitmap, int type)
      Description copied from interface: PackBitmapIndex
      Returns a bitmap containing positions for objects that have the given Git type.
      Specified by:
      ofObjectType in interface PackBitmapIndex
      Parameters:
      bitmap - the object bitmap.
      type - the Git type.
      Returns:
      the object bitmap with only objects of the Git type.
    • iterator

      Specified by:
      iterator in interface Iterable<PackBitmapIndexRemapper.Entry>
    • getBitmap

      public com.googlecode.javaewah.EWAHCompressedBitmap getBitmap(AnyObjectId objectId)
      Description copied from interface: PackBitmapIndex
      Returns the previously constructed bitmap for the object.
      Specified by:
      getBitmap in interface PackBitmapIndex
      Parameters:
      objectId - the id for which the bitmap will be found.
      Returns:
      the bitmap or null if the object was not found.
    • getBitmapCount

      public int getBitmapCount()
      Description copied from interface: PackBitmapIndex
      Returns the number of bitmaps in this bitmap index.
      Specified by:
      getBitmapCount in interface PackBitmapIndex
      Returns:
      the number of bitmaps in this bitmap index.