java.lang.Object
org.eclipse.jgit.lib.AbbreviatedObjectId
- All Implemented Interfaces:
Serializable
A prefix abbreviation of an
ObjectId
.
Sometimes Git produces abbreviated SHA-1 strings, using sufficient leading digits from the ObjectId name to still be unique within the repository the string was generated from. These ids are likely to be unique for a useful period of time, especially if they contain at least 6-10 hex digits.
This class converts the hex string into a binary form, to make it more efficient for matching against an object.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionboolean
static final AbbreviatedObjectId
Convert an AbbreviatedObjectId from anAnyObjectId
.static final AbbreviatedObjectId
fromString
(byte[] buf, int offset, int end) Convert an AbbreviatedObjectId from hex characters (US-ASCII).static final AbbreviatedObjectId
fromString
(String str) Convert an AbbreviatedObjectId from hex characters.final int
Get value for a fan-out style map, only valid of length >= 2.int
hashCode()
boolean
Whether this ObjectId is actually a complete id.static final boolean
Test a string of characters to verify it is a hex format.int
length()
Get number of hex digits appearing in this id.final String
name()
Get string form of the abbreviation, in lower case hexadecimal.final int
prefixCompare
(byte[] bs, int p) Compare this abbreviation to a network-byte-order ObjectId.final int
prefixCompare
(int[] bs, int p) Compare this abbreviation to a network-byte-order ObjectId.final int
prefixCompare
(AnyObjectId other) Compares this abbreviation to a full object id.A complete ObjectId; null ifisComplete()
is falsetoString()
-
Method Details
-
isId
Test a string of characters to verify it is a hex format.If true the string can be parsed with
fromString(String)
.- Parameters:
id
- the string to test.- Returns:
- true if the string can converted into an AbbreviatedObjectId.
-
fromString
Convert an AbbreviatedObjectId from hex characters (US-ASCII).- Parameters:
buf
- the US-ASCII buffer to read from.offset
- position to read the first character from.end
- one past the last position to read (end-offset
is the length of the string).- Returns:
- the converted object id.
-
fromObjectId
Convert an AbbreviatedObjectId from anAnyObjectId
.This method copies over all bits of the Id, and is therefore complete (see
isComplete()
).- Parameters:
id
- theObjectId
to convert from.- Returns:
- the converted object id.
-
fromString
Convert an AbbreviatedObjectId from hex characters.- Parameters:
str
- the string to read from. Must be <= 40 characters.- Returns:
- the converted object id.
-
length
public int length()Get number of hex digits appearing in this id.- Returns:
- number of hex digits appearing in this id.
-
isComplete
public boolean isComplete()Whether this ObjectId is actually a complete id.- Returns:
- true if this ObjectId is actually a complete id.
-
toObjectId
A complete ObjectId; null ifisComplete()
is false- Returns:
- a complete ObjectId; null if
isComplete()
is false
-
prefixCompare
Compares this abbreviation to a full object id.- Parameters:
other
- the other object id.- Returns:
- <0 if this abbreviation names an object that is less than
other
; 0 if this abbreviation exactly matches the firstlength()
digits ofother.name()
; >0 if this abbreviation names an object that is afterother
.
-
prefixCompare
public final int prefixCompare(byte[] bs, int p) Compare this abbreviation to a network-byte-order ObjectId.- Parameters:
bs
- array containing the other ObjectId in network byte order.p
- position withinbs
to start the compare at. At least 20 bytes, starting at this position are required.- Returns:
- <0 if this abbreviation names an object that is less than
other
; 0 if this abbreviation exactly matches the firstlength()
digits ofother.name()
; >0 if this abbreviation names an object that is afterother
.
-
prefixCompare
public final int prefixCompare(int[] bs, int p) Compare this abbreviation to a network-byte-order ObjectId.- Parameters:
bs
- array containing the other ObjectId in network byte order.p
- position withinbs
to start the compare at. At least 5 ints, starting at this position are required.- Returns:
- <0 if this abbreviation names an object that is less than
other
; 0 if this abbreviation exactly matches the firstlength()
digits ofother.name()
; >0 if this abbreviation names an object that is afterother
.
-
getFirstByte
public final int getFirstByte()Get value for a fan-out style map, only valid of length >= 2.- Returns:
- value for a fan-out style map, only valid of length >= 2.
-
hashCode
public int hashCode() -
equals
-
name
Get string form of the abbreviation, in lower case hexadecimal.- Returns:
- string form of the abbreviation, in lower case hexadecimal.
-
toString
-