org.eclipse.jgit.lib

## Class AnyObjectId

- java.lang.Object
- - org.eclipse.jgit.lib.AnyObjectId

All Implemented Interfaces:
  Comparable<AnyObjectId>

Direct Known Subclasses:
  MutableObjectId, ObjectId

    public abstract class AnyObjectId
    extends Object
    implements Comparable<AnyObjectId>

A (possibly mutable) SHA-1 abstraction.

If this is an instance of `MutableObjectId` the concept of equality with this instance can alter at any time, if this instance is modified to represent a different object name.

### Constructor Summary

Constructors
Constructor and Description
`AnyObjectId()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`AbbreviatedObjectId` `abbreviate(int len)` Return an abbreviation (prefix) of this object SHA-1.
`int` `compareTo(AnyObjectId other)` Compare this ObjectId to another and obtain a sort ordering.
`int` `compareTo(byte[] bs, int p)` Compare this ObjectId to a network-byte-order ObjectId.
`int` `compareTo(int[] bs, int p)` Compare this ObjectId to a network-byte-order ObjectId.
`ObjectId` `copy()` Obtain an immutable copy of this current object name value.
`void` `copyRawTo(byte[] b, int o)` Copy this ObjectId to a byte array.
`void` `copyRawTo(ByteBuffer w)` Copy this ObjectId to an output writer in raw binary.
`void` `copyRawTo(int[] b, int o)` Copy this ObjectId to an int array.
`void` `copyRawTo(OutputStream w)` Copy this ObjectId to an output writer in raw binary.
`void` `copyTo(byte[] b, int o)` Copy this ObjectId to a byte array in hex format.
`void` `copyTo(ByteBuffer b)` Copy this ObjectId to a ByteBuffer in hex format.
`void` `copyTo(char[] tmp, StringBuilder w)` Copy this ObjectId to a StringBuilder in hex format.
`void` `copyTo(char[] tmp, Writer w)` Copy this ObjectId to an output writer in hex format.
`void` `copyTo(OutputStream w)` Copy this ObjectId to an output writer in hex format.
`void` `copyTo(Writer w)` Copy this ObjectId to an output writer in hex format.
`boolean` `equals(AnyObjectId other)` Determine if this ObjectId has exactly the same value as another.
`static boolean` `equals(AnyObjectId firstObjectId, AnyObjectId secondObjectId)` Compare to object identifier byte sequences for equality.
`boolean` `equals(Object o)`
`int` `getByte(int index)` Get any byte from the ObjectId.
`int` `getFirstByte()` Get the first 8 bits of the ObjectId.
`String` `getName()`
`int` `hashCode()`
`String` `name()`
`boolean` `startsWith(AbbreviatedObjectId abbr)` Tests if this ObjectId starts with the given abbreviation.
`abstract ObjectId` `toObjectId()` Obtain an immutable copy of this current object name value.
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### AnyObjectId

    public AnyObjectId()

### Method Detail

#### equals

    public static boolean equals(AnyObjectId firstObjectId,
                                 AnyObjectId secondObjectId)

Compare to object identifier byte sequences for equality.

Parameters:
  `firstObjectId` - the first identifier to compare. Must not be null.
  `secondObjectId` - the second identifier to compare. Must not be null.
Returns:
  true if the two identifiers are the same.

#### getFirstByte

    public final int getFirstByte()

Get the first 8 bits of the ObjectId. This is a faster version of `getByte(0)`.

Returns:
  a discriminator usable for a fan-out style map. Returned values are unsigned and thus are in the range [0,255] rather than the signed byte range of [-128, 127].

#### getByte

    public final int getByte(int index)

Get any byte from the ObjectId. Callers hard-coding `getByte(0)` should instead use the much faster special case variant `getFirstByte()`.

Parameters:
  `index` - index of the byte to obtain from the raw form of the ObjectId. Must be in range [0, `Constants.OBJECT_ID_LENGTH`).
Returns:
  the value of the requested byte at `index`. Returned values are unsigned and thus are in the range [0,255] rather than the signed byte range of [-128, 127].
Throws:
  `ArrayIndexOutOfBoundsException` - `index` is less than 0, equal to `Constants.OBJECT_ID_LENGTH`, or greater than `Constants.OBJECT_ID_LENGTH`.

#### compareTo

    public final int compareTo(AnyObjectId other)

Compare this ObjectId to another and obtain a sort ordering.

Specified by:
  `compareTo` in interface `Comparable<AnyObjectId>`
Parameters:
  `other` - the other id to compare to. Must not be null.
Returns:
  < 0 if this id comes before other; 0 if this id is equal to other; > 0 if this id comes after other.

#### compareTo

    public final int compareTo(byte[] bs,
                               int p)

Compare this ObjectId 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:
  a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

#### compareTo

    public final int compareTo(int[] bs,
                               int p)

Compare this ObjectId 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 integers, starting at this position are required.
Returns:
  a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

#### startsWith

    public boolean startsWith(AbbreviatedObjectId abbr)

Tests if this ObjectId starts with the given abbreviation.

Parameters:
  `abbr` - the abbreviation.
Returns:
  true if this ObjectId begins with the abbreviation; else false.

#### hashCode

    public final int hashCode()

Overrides:
  `hashCode` in class `Object`

#### equals

    public final boolean equals(AnyObjectId other)

Determine if this ObjectId has exactly the same value as another.

Parameters:
  `other` - the other id to compare to. May be null.
Returns:
  true only if both ObjectIds have identical bits.

#### equals

    public final boolean equals(Object o)

Overrides:
  `equals` in class `Object`

#### copyRawTo

    public void copyRawTo(ByteBuffer w)

Copy this ObjectId to an output writer in raw binary.

Parameters:
  `w` - the buffer to copy to. Must be in big endian order.

#### copyRawTo

    public void copyRawTo(byte[] b,
                          int o)

Copy this ObjectId to a byte array.

Parameters:
  `b` - the buffer to copy to.
  `o` - the offset within b to write at.

#### copyRawTo

    public void copyRawTo(int[] b,
                          int o)

Copy this ObjectId to an int array.

Parameters:
  `b` - the buffer to copy to.
  `o` - the offset within b to write at.

#### copyRawTo

    public void copyRawTo(OutputStream w)
                   throws IOException

Copy this ObjectId to an output writer in raw binary.

Parameters:
  `w` - the stream to write to.
Throws:
  `IOException` - the stream writing failed.

#### copyTo

    public void copyTo(OutputStream w)
                throws IOException

Copy this ObjectId to an output writer in hex format.

Parameters:
  `w` - the stream to copy to.
Throws:
  `IOException` - the stream writing failed.

#### copyTo

    public void copyTo(byte[] b,
                       int o)

Copy this ObjectId to a byte array in hex format.

Parameters:
  `b` - the buffer to copy to.
  `o` - the offset within b to write at.

#### copyTo

    public void copyTo(ByteBuffer b)

Copy this ObjectId to a ByteBuffer in hex format.

Parameters:
  `b` - the buffer to copy to.

#### copyTo

    public void copyTo(Writer w)
                throws IOException

Copy this ObjectId to an output writer in hex format.

Parameters:
  `w` - the stream to copy to.
Throws:
  `IOException` - the stream writing failed.

#### copyTo

    public void copyTo(char[] tmp,
                       Writer w)
                throws IOException

Copy this ObjectId to an output writer in hex format.

Parameters:
  `tmp` - temporary char array to buffer construct into before writing. Must be at least large enough to hold 2 digits for each byte of object id (40 characters or larger).
  `w` - the stream to copy to.
Throws:
  `IOException` - the stream writing failed.

#### copyTo

    public void copyTo(char[] tmp,
                       StringBuilder w)

Copy this ObjectId to a StringBuilder in hex format.

Parameters:
  `tmp` - temporary char array to buffer construct into before writing. Must be at least large enough to hold 2 digits for each byte of object id (40 characters or larger).
  `w` - the string to append onto.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### name

    public final String name()

Returns:
  string form of the SHA-1, in lower case hexadecimal.

#### getName

    public final String getName()

Returns:
  string form of the SHA-1, in lower case hexadecimal.

#### abbreviate

    public AbbreviatedObjectId abbreviate(int len)

Return an abbreviation (prefix) of this object SHA-1.

This implementation does not guarantee uniqueness. Callers should instead use `ObjectReader.abbreviate(AnyObjectId, int)` to obtain a unique abbreviation within the scope of a particular object database.

Parameters:
  `len` - length of the abbreviated string.
Returns:
  SHA-1 abbreviation.

#### copy

    public final ObjectId copy()

Obtain an immutable copy of this current object name value.

Only returns `this` if this instance is an unsubclassed instance of `ObjectId`; otherwise a new instance is returned holding the same value.

This method is useful to shed any additional memory that may be tied to the subclass, yet retain the unique identity of the object id for future lookups within maps and repositories.

Returns:
  an immutable copy, using the smallest memory footprint possible.

#### toObjectId

    public abstract ObjectId toObjectId()

Obtain an immutable copy of this current object name value.

See `copy()` if `this` is a possibly subclassed (but immutable) identity and the application needs a lightweight identity only reference.

Returns:
  an immutable copy. May be `this` if this is already an immutable instance.