org.apache.hadoop.io

## Class MD5Hash

- java.lang.Object
- - org.apache.hadoop.io.MD5Hash

- All Implemented Interfaces:
    Comparable<MD5Hash>, Writable, WritableComparable<MD5Hash>

      @InterfaceAudience.Public
       @InterfaceStability.Stable
      public class MD5Hash
      extends Object
      implements WritableComparable<MD5Hash>

  A Writable for MD5 hash values.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MD5_LEN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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[][] dataArr, int start, int len)` Construct a hash value for an array of 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(org.apache.hadoop.io.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(byte[][] dataArr,
                                       int start,
                                       int len)

      Construct a hash value for an array of byte array.

    - #### digest

          public static MD5Hash digest(String string)

      Construct a hash value for a String.

    - #### digest

          public static MD5Hash digest(org.apache.hadoop.io.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 © 2022 Apache Software Foundation. All rights reserved.