public abstract class AnyObjectId extends Object implements Comparable<AnyObjectId>
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 and Description |
---|
AnyObjectId() |
Modifier and Type | Method and Description |
---|---|
AbbreviatedObjectId |
abbreviate(int len)
Return an abbreviation (prefix) of this object SHA-1.
|
int |
compareTo(AnyObjectId other) |
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()
Get string form of the SHA-1, in lower case hexadecimal.
|
int |
hashCode() |
String |
name()
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() |
public static boolean equals(AnyObjectId firstObjectId, AnyObjectId secondObjectId)
firstObjectId
- the first identifier to compare. Must not be null.secondObjectId
- the second identifier to compare. Must not be null.public final int getFirstByte()
getByte(0)
.public final int getByte(int index)
getByte(0)
should instead use the much faster
special case variant getFirstByte()
.index
- index of the byte to obtain from the raw form of the ObjectId.
Must be in range [0,
Constants.OBJECT_ID_LENGTH
).index
. Returned values
are unsigned and thus are in the range [0,255] rather than the
signed byte range of [-128, 127].ArrayIndexOutOfBoundsException
- index
is less than 0, equal to
Constants.OBJECT_ID_LENGTH
, or
greater than
Constants.OBJECT_ID_LENGTH
.public final int compareTo(AnyObjectId other)
Compare this ObjectId to another and obtain a sort ordering.
compareTo
in interface Comparable<AnyObjectId>
public final int compareTo(byte[] bs, int p)
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.public final int compareTo(int[] bs, int p)
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.public boolean startsWith(AbbreviatedObjectId abbr)
abbr
- the abbreviation.public final boolean equals(AnyObjectId other)
other
- the other id to compare to. May be null.public void copyRawTo(ByteBuffer w)
w
- the buffer to copy to. Must be in big endian order.public void copyRawTo(byte[] b, int o)
b
- the buffer to copy to.o
- the offset within b to write at.public void copyRawTo(int[] b, int o)
b
- the buffer to copy to.o
- the offset within b to write at.public void copyRawTo(OutputStream w) throws IOException
w
- the stream to write to.IOException
- the stream writing failed.public void copyTo(OutputStream w) throws IOException
w
- the stream to copy to.IOException
- the stream writing failed.public void copyTo(byte[] b, int o)
b
- the buffer to copy to.o
- the offset within b to write at.public void copyTo(ByteBuffer b)
b
- the buffer to copy to.public void copyTo(Writer w) throws IOException
w
- the stream to copy to.IOException
- the stream writing failed.public void copyTo(char[] tmp, Writer w) throws IOException
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.IOException
- the stream writing failed.public void copyTo(char[] tmp, StringBuilder w)
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.public final String name()
name.
public final String getName()
public AbbreviatedObjectId abbreviate(int len)
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.
len
- length of the abbreviated string.public final ObjectId copy()
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.
public abstract ObjectId toObjectId()
See copy()
if this
is a possibly subclassed (but
immutable) identity and the application needs a lightweight identity
only reference.
this
if this is already
an immutable instance.Copyright © 2019 Eclipse JGit Project. All rights reserved.