Package org.eclipse.jgit.lib
Class AbbreviatedObjectId
- java.lang.Object
-
- org.eclipse.jgit.lib.AbbreviatedObjectId
-
- All Implemented Interfaces:
Serializable
public final class AbbreviatedObjectId extends Object implements Serializable
A prefix abbreviation of anObjectId
.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:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
static AbbreviatedObjectId
fromObjectId(AnyObjectId id)
Convert an AbbreviatedObjectId from anAnyObjectId
.static AbbreviatedObjectId
fromString(byte[] buf, int offset, int end)
Convert an AbbreviatedObjectId from hex characters (US-ASCII).static AbbreviatedObjectId
fromString(String str)
Convert an AbbreviatedObjectId from hex characters.int
getFirstByte()
Get value for a fan-out style map, only valid of length >= 2.int
hashCode()
boolean
isComplete()
Whether this ObjectId is actually a complete id.static boolean
isId(String id)
Test a string of characters to verify it is a hex format.int
length()
Get number of hex digits appearing in this id.String
name()
Get string form of the abbreviation, in lower case hexadecimal.int
prefixCompare(byte[] bs, int p)
Compare this abbreviation to a network-byte-order ObjectId.int
prefixCompare(int[] bs, int p)
Compare this abbreviation to a network-byte-order ObjectId.int
prefixCompare(AnyObjectId other)
Compares this abbreviation to a full object id.ObjectId
toObjectId()
A complete ObjectId; null ifisComplete()
is falseString
toString()
-
-
-
Method Detail
-
isId
public static final boolean isId(String id)
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
public static final AbbreviatedObjectId fromString(byte[] buf, int offset, int end)
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
public static final AbbreviatedObjectId fromObjectId(AnyObjectId id)
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
public static final AbbreviatedObjectId fromString(String str)
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
public ObjectId toObjectId()
A complete ObjectId; null ifisComplete()
is false- Returns:
- a complete ObjectId; null if
isComplete()
is false
-
prefixCompare
public final int prefixCompare(AnyObjectId other)
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.
-
name
public final String name()
Get string form of the abbreviation, in lower case hexadecimal.- Returns:
- string form of the abbreviation, in lower case hexadecimal.
-
-