org.eclipse.jgit.lib
Class AnyObjectId

java.lang.Object
  extended by org.eclipse.jgit.lib.AnyObjectId
All Implemented Interfaces:
java.lang.Comparable
Direct Known Subclasses:
MutableObjectId, ObjectId

public abstract class AnyObjectId
extends java.lang.Object
implements java.lang.Comparable

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
AnyObjectId()
           
 
Method Summary
 AbbreviatedObjectId abbreviate(Repository repo)
          Return unique abbreviation (prefix) of this object SHA-1.
 AbbreviatedObjectId abbreviate(Repository repo, int len)
          Return unique abbreviation (prefix) of this object SHA-1.
 int compareTo(java.lang.Object other)
           
 int compareTo(ObjectId other)
          Compare this ObjectId to another and obtain a sort ordering.
 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(java.nio.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(java.io.OutputStream w)
          Copy this ObjectId to an output writer in raw binary.
 void copyTo(char[] tmp, java.lang.StringBuilder w)
          Copy this ObjectId to a StringBuilder in hex format.
 void copyTo(char[] tmp, java.io.Writer w)
          Copy this ObjectId to an output writer in hex format.
 void copyTo(java.io.OutputStream w)
          Copy this ObjectId to an output writer in hex format.
 void copyTo(java.io.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(java.lang.Object o)
           
 int getFirstByte()
          For ObjectIdMap
 java.lang.String getName()
           
 int hashCode()
           
 java.lang.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.
 java.lang.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()
For ObjectIdMap

Returns:
a discriminator usable for a fan-out style map

compareTo

public int compareTo(ObjectId other)
Compare this ObjectId to another and obtain a sort ordering.

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 int compareTo(java.lang.Object other)
Specified by:
compareTo in interface java.lang.Comparable

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 int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public 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 boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

copyRawTo

public void copyRawTo(java.nio.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(java.io.OutputStream w)
               throws java.io.IOException
Copy this ObjectId to an output writer in raw binary.

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

copyTo

public void copyTo(java.io.OutputStream w)
            throws java.io.IOException
Copy this ObjectId to an output writer in hex format.

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

copyTo

public void copyTo(java.io.Writer w)
            throws java.io.IOException
Copy this ObjectId to an output writer in hex format.

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

copyTo

public void copyTo(char[] tmp,
                   java.io.Writer w)
            throws java.io.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:
java.io.IOException - the stream writing failed.

copyTo

public void copyTo(char[] tmp,
                   java.lang.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 java.lang.String toString()
Overrides:
toString in class java.lang.Object

name

public final java.lang.String name()
Returns:
string form of the SHA-1, in lower case hexadecimal.

getName

public final java.lang.String getName()
Returns:
string form of the SHA-1, in lower case hexadecimal.

abbreviate

public AbbreviatedObjectId abbreviate(Repository repo)
Return unique abbreviation (prefix) of this object SHA-1.

This method is a utility for abbreviate(repo, 8).

Parameters:
repo - repository for checking uniqueness within.
Returns:
SHA-1 abbreviation.

abbreviate

public AbbreviatedObjectId abbreviate(Repository repo,
                                      int len)
Return unique abbreviation (prefix) of this object SHA-1.

Current implementation is not guaranteeing uniqueness, it just returns fixed-length prefix of SHA-1 string.

Parameters:
repo - repository for checking uniqueness within.
len - minimum 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.