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.ObjectIds are encoded as a single integer in the range [0,getObjectCount()). Compressed bitmaps are available at certainObjectIds, which represent all of the objects reachable from thatObjectId(include theObjectIditself). 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.
-
-
Field Summary
Fields Modifier and Type Field Description static intFLAG_REUSEFlag 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 intfindPosition(AnyObjectId objectId)Finds the position in the bitmap of the object.abstract com.googlecode.javaewah.EWAHCompressedBitmapgetBitmap(AnyObjectId objectId)Returns the previously constructed bitmap for the object.abstract ObjectIdgetObject(int position)Get the object at the bitmap position.abstract intgetObjectCount()Obtain the total number of objects described by this index.abstract com.googlecode.javaewah.EWAHCompressedBitmapofObjectType(com.googlecode.javaewah.EWAHCompressedBitmap bitmap, int type)Returns a bitmap containing positions for objects that have the given Git type.static PackBitmapIndexopen(File idxFile, PackIndex packIndex, PackReverseIndex reverseIndex)Read an existing pack bitmap index file from a buffered stream.static PackBitmapIndexread(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.
-
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() - 1is 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.
-
-