@ -16,13 +16,26 @@ import org.eclipse.jgit.lib.ObjectId;
* A commit object for which a bitmap index should be built .
* A commit object for which a bitmap index should be built .
* /
* /
public final class BitmapCommit extends ObjectId {
public final class BitmapCommit extends ObjectId {
private final boolean reuseWalker ;
private final boolean reuseWalker ;
private final int flags ;
private final int flags ;
private final boolean addToIndex ;
BitmapCommit ( AnyObjectId objectId , boolean reuseWalker , int flags ) {
BitmapCommit ( AnyObjectId objectId , boolean reuseWalker , int flags ) {
super ( objectId ) ;
super ( objectId ) ;
this . reuseWalker = reuseWalker ;
this . reuseWalker = reuseWalker ;
this . flags = flags ;
this . flags = flags ;
this . addToIndex = false ;
}
BitmapCommit ( AnyObjectId objectId , boolean reuseWalker , int flags ,
boolean addToIndex ) {
super ( objectId ) ;
this . reuseWalker = reuseWalker ;
this . flags = flags ;
this . addToIndex = addToIndex ;
}
}
boolean isReuseWalker ( ) {
boolean isReuseWalker ( ) {
@ -32,4 +45,119 @@ public final class BitmapCommit extends ObjectId {
int getFlags ( ) {
int getFlags ( ) {
return flags ;
return flags ;
}
}
/ * *
* Whether corresponding bitmap should be added to PackBitmapIndexBuilder .
*
* @return true if the corresponding bitmap should be added to
* PackBitmapIndexBuilder .
* /
public boolean isAddToIndex ( ) {
return addToIndex ;
}
/ * *
* Get a builder of BitmapCommit whose object id is { @code objId } .
*
* @param objId
* the object id of the BitmapCommit
* @return a BitmapCommit builder with object id set .
* /
public static Builder newBuilder ( AnyObjectId objId ) {
return new Builder ( ) . setId ( objId ) ;
}
/ * *
* Get a builder of BitmapCommit whose fields are copied from
* { @code commit } .
*
* @param commit
* the bitmap commit the builder is copying from
* @return a BitmapCommit build with fields copied from an existing bitmap
* commit .
* /
public static Builder copyFrom ( BitmapCommit commit ) {
return new Builder ( ) . setId ( commit )
. setReuseWalker ( commit . isReuseWalker ( ) )
. setFlags ( commit . getFlags ( ) )
. setAddToIndex ( commit . isAddToIndex ( ) ) ;
}
/ * *
* Builder of BitmapCommit .
* /
public static class Builder {
private AnyObjectId objectId ;
private boolean reuseWalker ;
private int flags ;
private boolean addToIndex ;
// Prevent default constructor.
private Builder ( ) {
}
/ * *
* Set objectId of the builder .
*
* @param objectId
* the object id of the BitmapCommit
* @return the builder itself
* /
public Builder setId ( AnyObjectId objectId ) {
this . objectId = objectId ;
return this ;
}
/ * *
* Set reuseWalker of the builder .
*
* @param reuseWalker
* whether the BitmapCommit should reuse bitmap walker when
* walking objects
* @return the builder itself
* /
public Builder setReuseWalker ( boolean reuseWalker ) {
this . reuseWalker = reuseWalker ;
return this ;
}
/ * *
* Set flags of the builder .
*
* @param flags
* the flags of the BitmapCommit
* @return the builder itself
* /
public Builder setFlags ( int flags ) {
this . flags = flags ;
return this ;
}
/ * *
* Set whether whether the bitmap of the BitmapCommit should be added to
* PackBitmapIndexBuilder when building bitmap index file .
*
* @param addToIndex
* whether the bitmap of the BitmapCommit should be added to
* PackBitmapIndexBuilder when building bitmap index file
* @return the builder itself
* /
public Builder setAddToIndex ( boolean addToIndex ) {
this . addToIndex = addToIndex ;
return this ;
}
/ * *
* Builds BitmapCommit from the builder .
*
* @return the new BitmapCommit .
* /
public BitmapCommit build ( ) {
return new BitmapCommit ( objectId , reuseWalker , flags ,
addToIndex ) ;
}
}
}
}