Class PackBitmapIndex
- java.lang.Object
-
- org.eclipse.jgit.internal.storage.file.PackBitmapIndex
-
- Direct Known Subclasses:
PackBitmapIndexBuilder
,PackBitmapIndexRemapper
public abstract class PackBitmapIndex extends Object
Logical representation of the bitmap data stored in the pack index.ObjectId
s are encoded as a single integer in the range [0,getObjectCount()
). Compressed bitmaps are available at certainObjectId
s, which represent all of the objects reachable from thatObjectId
(include theObjectId
itself). The meaning of the positions in the bitmaps can be decoded usinggetObject(int)
andofObjectType(EWAHCompressedBitmap, int)
. Furthermore,findPosition(AnyObjectId)
can be used to build other bitmaps that a compatible with the encoded bitmaps available from the index.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
PackBitmapIndex.SupplierWithIOException<T>
Supplier that propagates IOException.
-
Field Summary
Fields Modifier and Type Field Description static int
FLAG_REUSE
Flag bit denoting the bitmap should be reused during index creation.
-
Constructor Summary
Constructors Constructor Description PackBitmapIndex()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract int
findPosition(AnyObjectId objectId)
Finds the position in the bitmap of the object.abstract com.googlecode.javaewah.EWAHCompressedBitmap
getBitmap(AnyObjectId objectId)
Returns the previously constructed bitmap for the object.abstract int
getBitmapCount()
Returns the number of bitmaps in this bitmap index.abstract ObjectId
getObject(int position)
Get the object at the bitmap position.abstract int
getObjectCount()
Obtain the total number of objects described by this index.abstract 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.static PackBitmapIndex
open(File idxFile, PackIndex packIndex, PackReverseIndex reverseIndex)
Read an existing pack bitmap index file from a buffered stream.static PackBitmapIndex
read(InputStream fd, PackBitmapIndex.SupplierWithIOException<PackIndex> packIndexSupplier, PackBitmapIndex.SupplierWithIOException<PackReverseIndex> reverseIndexSupplier, boolean loadParallelRevIndex)
Read an existing pack bitmap index file from a buffered stream.static PackBitmapIndex
read(InputStream fd, PackIndex packIndex, PackReverseIndex reverseIndex)
Read an existing pack bitmap index file from a buffered stream.
-
-
-
Field Detail
-
FLAG_REUSE
public static final int FLAG_REUSE
Flag bit denoting the bitmap should be reused during index creation.- See Also:
- Constant Field Values
-
-
Method Detail
-
open
public static PackBitmapIndex open(File idxFile, PackIndex packIndex, PackReverseIndex reverseIndex) throws IOException
Read an existing pack bitmap index file from a buffered stream.The format of the file will be automatically detected and a proper access implementation for that format will be constructed and returned to the caller. The file may or may not be held open by the returned instance.
- Parameters:
idxFile
- existing pack .bitmap to read.packIndex
- the pack index for the corresponding pack file.reverseIndex
- the pack reverse index for the corresponding pack file.- Returns:
- a copy of the index in-memory.
- Throws:
IOException
- the stream cannot be read.CorruptObjectException
- the stream does not contain a valid pack bitmap index.
-
read
public static PackBitmapIndex read(InputStream fd, PackIndex packIndex, PackReverseIndex reverseIndex) throws IOException
Read an existing pack bitmap index file from a buffered stream.The format of the file will be automatically detected and a proper access implementation for that format will be constructed and returned to the caller. The file may or may not be held open by the returned instance.
- Parameters:
fd
- stream to read the bitmap index file from. The stream must be buffered as some small IOs are performed against the stream. The caller is responsible for closing the stream.packIndex
- the pack index for the corresponding pack file.reverseIndex
- the pack reverse index for the corresponding pack file.- Returns:
- a copy of the index in-memory.
- Throws:
IOException
- the stream cannot be read.CorruptObjectException
- the stream does not contain a valid pack bitmap index.
-
read
public static PackBitmapIndex read(InputStream fd, PackBitmapIndex.SupplierWithIOException<PackIndex> packIndexSupplier, PackBitmapIndex.SupplierWithIOException<PackReverseIndex> reverseIndexSupplier, boolean loadParallelRevIndex) throws IOException
Read an existing pack bitmap index file from a buffered stream.The format of the file will be automatically detected and a proper access implementation for that format will be constructed and returned to the caller. The file may or may not be held open by the returned instance.
- Parameters:
fd
- stream to read the bitmap index file from. The stream must be buffered as some small IOs are performed against the stream. The caller is responsible for closing the stream.packIndexSupplier
- the supplier for pack index for the corresponding pack file.reverseIndexSupplier
- the supplier for pack reverse index for the corresponding pack file.loadParallelRevIndex
- whether reverse index should be loaded in parallel- Returns:
- a copy of the index in-memory.
- Throws:
IOException
- the stream cannot be read.CorruptObjectException
- the stream does not contain a valid pack bitmap index.
-
findPosition
public abstract int findPosition(AnyObjectId objectId)
Finds the position in the bitmap of the object.- 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 abstract ObjectId getObject(int position) throws IllegalArgumentException
Get the object at the bitmap position.- Parameters:
position
- the id for which the object will be found.- Returns:
- the ObjectId.
- Throws:
IllegalArgumentException
- when the item is not found.
-
ofObjectType
public abstract 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.- Parameters:
bitmap
- the object bitmap.type
- the Git type.- Returns:
- the object bitmap with only objects of the Git type.
-
getBitmap
public abstract com.googlecode.javaewah.EWAHCompressedBitmap getBitmap(AnyObjectId objectId)
Returns the previously constructed bitmap for the object.- Parameters:
objectId
- the id for which the bitmap will be found.- Returns:
- the bitmap or null if the object was not found.
-
getObjectCount
public abstract 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.- Returns:
- number of objects in this index, and likewise in the associated pack that this index was generated from.
-
getBitmapCount
public abstract int getBitmapCount()
Returns the number of bitmaps in this bitmap index.- Returns:
- the number of bitmaps in this bitmap index.
-
-