org.apache.hadoop.io
Class MD5Hash

java.lang.Object
  extended by org.apache.hadoop.io.MD5Hash
All Implemented Interfaces:
Comparable<MD5Hash>, Writable, WritableComparable<MD5Hash>

public class MD5Hash
extends Object
implements WritableComparable<MD5Hash>

A Writable for MD5 hash values.


Nested Class Summary
static class MD5Hash.Comparator
          A WritableComparator optimized for MD5Hash keys.
 
Field Summary
static int MD5_LEN
           
 
Constructor Summary
MD5Hash()
          Constructs an MD5Hash.
MD5Hash(byte[] digest)
          Constructs an MD5Hash with a specified value.
MD5Hash(String hex)
          Constructs an MD5Hash from a hex string.
 
Method Summary
 int compareTo(MD5Hash that)
          Compares this object with the specified object for order.
static MD5Hash digest(byte[] data)
          Construct a hash value for a byte array.
static MD5Hash digest(byte[] data, int start, int len)
          Construct a hash value for a byte array.
static MD5Hash digest(InputStream in)
          Construct a hash value for the content from the InputStream.
static MD5Hash digest(String string)
          Construct a hash value for a String.
static MD5Hash digest(UTF8 utf8)
          Construct a hash value for a String.
 boolean equals(Object o)
          Returns true iff o is an MD5Hash whose digest contains the same values.
 byte[] getDigest()
          Returns the digest bytes.
static MessageDigest getDigester()
          Create a thread local MD5 digester
 long halfDigest()
          Construct a half-sized version of this MD5.
 int hashCode()
          Returns a hash code value for this object.
 int quarterDigest()
          Return a 32-bit digest of the MD5.
static MD5Hash read(DataInput in)
          Constructs, reads and returns an instance.
 void readFields(DataInput in)
          Deserialize the fields of this object from in.
 void set(MD5Hash that)
          Copy the contents of another instance into this instance.
 void setDigest(String hex)
          Sets the digest value from a hex string.
 String toString()
          Returns a string representation of this object.
 void write(DataOutput out)
          Serialize the fields of this object to out.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

MD5_LEN

public static final int MD5_LEN
See Also:
Constant Field Values
Constructor Detail

MD5Hash

public MD5Hash()
Constructs an MD5Hash.


MD5Hash

public MD5Hash(String hex)
Constructs an MD5Hash from a hex string.


MD5Hash

public MD5Hash(byte[] digest)
Constructs an MD5Hash with a specified value.

Method Detail

readFields

public void readFields(DataInput in)
                throws IOException
Description copied from interface: Writable
Deserialize the fields of this object from in.

For efficiency, implementations should attempt to re-use storage in the existing object where possible.

Specified by:
readFields in interface Writable
Parameters:
in - DataInput to deseriablize this object from.
Throws:
IOException

read

public static MD5Hash read(DataInput in)
                    throws IOException
Constructs, reads and returns an instance.

Throws:
IOException

write

public void write(DataOutput out)
           throws IOException
Description copied from interface: Writable
Serialize the fields of this object to out.

Specified by:
write in interface Writable
Parameters:
out - DataOuput to serialize this object into.
Throws:
IOException

set

public void set(MD5Hash that)
Copy the contents of another instance into this instance.


getDigest

public byte[] getDigest()
Returns the digest bytes.


digest

public static MD5Hash digest(byte[] data)
Construct a hash value for a byte array.


getDigester

public static MessageDigest getDigester()
Create a thread local MD5 digester


digest

public static MD5Hash digest(InputStream in)
                      throws IOException
Construct a hash value for the content from the InputStream.

Throws:
IOException

digest

public static MD5Hash digest(byte[] data,
                             int start,
                             int len)
Construct a hash value for a byte array.


digest

public static MD5Hash digest(String string)
Construct a hash value for a String.


digest

public static MD5Hash digest(UTF8 utf8)
Construct a hash value for a String.


halfDigest

public long halfDigest()
Construct a half-sized version of this MD5. Fits in a long


quarterDigest

public int quarterDigest()
Return a 32-bit digest of the MD5.

Returns:
the first 4 bytes of the md5

equals

public boolean equals(Object o)
Returns true iff o is an MD5Hash whose digest contains the same values.

Overrides:
equals in class Object

hashCode

public int hashCode()
Returns a hash code value for this object. Only uses the first 4 bytes, since md5s are evenly distributed.

Overrides:
hashCode in class Object

compareTo

public int compareTo(MD5Hash that)
Compares this object with the specified object for order.

Specified by:
compareTo in interface Comparable<MD5Hash>

toString

public String toString()
Returns a string representation of this object.

Overrides:
toString in class Object

setDigest

public void setDigest(String hex)
Sets the digest value from a hex string.



Copyright © 2009 The Apache Software Foundation