Class PackBitmapIndexBuilder


public class PackBitmapIndexBuilder extends BasePackBitmapIndex
Helper for constructing PackBitmapIndexes.
  • Field Details

  • Constructor Details

    • PackBitmapIndexBuilder

      public PackBitmapIndexBuilder(List<ObjectToPack> objects)
      Creates a PackBitmapIndex used for building the contents of an index file.
      Parameters:
      objects - objects sorted by name. The list must be initially sorted by ObjectId (name); it will be resorted in place.
  • Method Details

    • sortByOffsetAndIndex

      private static void sortByOffsetAndIndex(BlockList<PackBitmapIndexBuilder.PositionEntry> byOffset, ObjectIdOwnerMap<PackBitmapIndexBuilder.PositionEntry> positionEntries, List<ObjectToPack> entries)
    • getObjectSet

      public ObjectIdOwnerMap<ObjectIdOwnerMap.Entry> getObjectSet()
      Get set of objects included in the pack.
      Returns:
      set of objects included in the pack.
    • addBitmap

      public void addBitmap(AnyObjectId objectId, BitmapIndex.Bitmap bitmap, int flags)
      Stores the bitmap for the objectId.
      Parameters:
      objectId - the object id key for the bitmap.
      bitmap - the bitmap
      flags - the flags to be stored with the bitmap
    • processBitmapForWrite

      public void processBitmapForWrite(BitmapCommit c, BitmapIndex.Bitmap bitmap, int flags)
      Processes a commit and prepares its bitmap to write to the bitmap index file.
      Parameters:
      c - the commit corresponds to the bitmap.
      bitmap - the bitmap to be written.
      flags - the flags of the commit.
    • generateStoredEntry

      private PackBitmapIndexBuilder.StoredEntry generateStoredEntry(BasePackBitmapIndex.StoredBitmap bitmapToWrite)
    • addBitmap

      public void addBitmap(AnyObjectId objectId, com.googlecode.javaewah.EWAHCompressedBitmap bitmap, int flags)
      Stores the bitmap for the objectId.
      Parameters:
      objectId - the object id key for the bitmap.
      bitmap - the bitmap
      flags - the flags to be stored with the bitmap
    • ofObjectType

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

      public int findPosition(AnyObjectId objectId)
      Finds the position in the bitmap of the object.
      Specified by:
      findPosition in class 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
      Get the object at the bitmap position.
      Specified by:
      getObject in class PackBitmapIndex
      Parameters:
      position - the id for which the object will be found.
      Returns:
      the ObjectId.
      Throws:
      IllegalArgumentException - when the item is not found.
    • getCommits

      public com.googlecode.javaewah.EWAHCompressedBitmap getCommits()
      Get the commit object bitmap.
      Returns:
      the commit object bitmap.
    • getTrees

      public com.googlecode.javaewah.EWAHCompressedBitmap getTrees()
      Get the tree object bitmap.
      Returns:
      the tree object bitmap.
    • getBlobs

      public com.googlecode.javaewah.EWAHCompressedBitmap getBlobs()
      Get the blob object bitmap.
      Returns:
      the blob object bitmap.
    • getTags

      public com.googlecode.javaewah.EWAHCompressedBitmap getTags()
      Get the tag object bitmap.
      Returns:
      the tag object bitmap.
    • getOptions

      public int getOptions()
      Get the index storage options.
      Returns:
      the index storage options.
    • getBitmapCount

      public int getBitmapCount()
      Returns the number of bitmaps in this bitmap index.
      Specified by:
      getBitmapCount in class PackBitmapIndex
      Returns:
      the number of bitmaps in this bitmap index.
    • resetBitmaps

      public void resetBitmaps(int size)
      Remove all the bitmaps entries added.
      Parameters:
      size - the expected number of bitmap entries to be written.
    • getObjectCount

      public int getObjectCount()
      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 class PackBitmapIndex
      Returns:
      number of objects in this index, and likewise in the associated pack that this index was generated from.
    • getCompressedBitmaps

      public List<PackBitmapIndexBuilder.StoredEntry> getCompressedBitmaps()
      Get list of xor compressed entries that need to be written.
      Returns:
      a list of the xor compressed entries.