- 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 booleanequals(Object o)static AbbreviatedObjectIdfromObjectId(AnyObjectId id)Convert an AbbreviatedObjectId from anAnyObjectId.static AbbreviatedObjectIdfromString(byte[] buf, int offset, int end)Convert an AbbreviatedObjectId from hex characters (US-ASCII).static AbbreviatedObjectIdfromString(String str)Convert an AbbreviatedObjectId from hex characters.intgetFirstByte()Get value for a fan-out style map, only valid of length >= 2.inthashCode()booleanisComplete()Whether this ObjectId is actually a complete id.static booleanisId(String id)Test a string of characters to verify it is a hex format.intlength()Get number of hex digits appearing in this id.Stringname()Get string form of the abbreviation, in lower case hexadecimal.intprefixCompare(byte[] bs, int p)Compare this abbreviation to a network-byte-order ObjectId.intprefixCompare(int[] bs, int p)Compare this abbreviation to a network-byte-order ObjectId.intprefixCompare(AnyObjectId other)Compares this abbreviation to a full object id.ObjectIdtoObjectId()A complete ObjectId; null ifisComplete()is falseStringtoString()
-
-
-
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-offsetis 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- theObjectIdto 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 withinbsto 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 withinbsto 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.
-
-