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 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

All Methods Static Methods Instance Methods Concrete Methods
`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​(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()`
`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`