org.eclipse.jgit.lib
Class AbbreviatedObjectId

java.lang.Object
  extended by org.eclipse.jgit.lib.AbbreviatedObjectId
All Implemented Interfaces:
Serializable

public final class AbbreviatedObjectId
extends Object
implements 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:
Serialized Form

Method Summary
 boolean equals(Object o)
           
static AbbreviatedObjectId fromObjectId(AnyObjectId id)
          Convert an AbbreviatedObjectId from an AnyObjectId.
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()
           
 int hashCode()
           
 boolean isComplete()
           
static boolean isId(String id)
          Test a string of characters to verify it is a hex format.
 int length()
           
 String name()
           
 int prefixCompare(AnyObjectId other)
          Compares this abbreviation to a full object id.
 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.
 ObjectId toObjectId()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

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 an AnyObjectId.

This method copies over all bits of the Id, and is therefore complete (see isComplete()).

Parameters:
id - the ObjectId 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()
Returns:
number of hex digits appearing in this id

isComplete

public boolean isComplete()
Returns:
true if this ObjectId is actually a complete id.

toObjectId

public ObjectId toObjectId()
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 first length() digits of other.name(); >0 if this abbreviation names an object that is after other.

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 within bs 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 first length() digits of other.name(); >0 if this abbreviation names an object that is after other.

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 within bs 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 first length() digits of other.name(); >0 if this abbreviation names an object that is after other.

getFirstByte

public final int getFirstByte()
Returns:
value for a fan-out style map, only valid of length >= 2.

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object o)
Overrides:
equals in class Object

name

public final String name()
Returns:
string form of the abbreviation, in lower case hexadecimal.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2012. All Rights Reserved.