Class PackBitmapIndexBuilder

    • Constructor Detail

      • 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 Detail

      • 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.
      • 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.
      • 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.
      • getBitmap

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