Class Fingerprint


  • public final class Fingerprint
    extends Object
    • Constructor Summary

      Constructors 
      Constructor Description
      Fingerprint()
      Initializes this object to the fingerprint of the empty string.
      Fingerprint​(byte[] bytes)
      Initializes this object to the fingerprint of the byte array bytes, which must be non-null.
      Fingerprint​(byte[] bytes, int start, int length)
      Initializes this object to the fingerprint of the bytes bytes[start]..bytes[start+length-1].
      Fingerprint​(char[] chars)
      Initializes this object to the fingerprint of the character array chars, which must be non-null.
      Fingerprint​(char[] chars, int start, int length)
      Initializes this object to the fingerprint of the characters chars[start]..chars[start+length-1].
      Fingerprint​(InputStream stream)
      Initializes this object to the fingerprint of the bytes in stream, which must be non-null.
      Fingerprint​(String s)
      Initializes this object to the fingerprint of the String s, which must be non-null.
      Fingerprint​(ByteBuffer buffer)
      Initializes this object to the fingerprint of the bytes in buffer, which must be non-null.
      Fingerprint​(Fingerprint fp)
      Initializes this fingerprint to a copy of fp, which must be non-null.
    • Constructor Detail

      • Fingerprint

        public Fingerprint()
        Initializes this object to the fingerprint of the empty string.
      • Fingerprint

        public Fingerprint​(Fingerprint fp)
        Initializes this fingerprint to a copy of fp, which must be non-null.
      • Fingerprint

        public Fingerprint​(String s)
        Initializes this object to the fingerprint of the String s, which must be non-null.
      • Fingerprint

        public Fingerprint​(char[] chars)
        Initializes this object to the fingerprint of the character array chars, which must be non-null.
      • Fingerprint

        public Fingerprint​(char[] chars,
                           int start,
                           int length)
        Initializes this object to the fingerprint of the characters chars[start]..chars[start+length-1].
      • Fingerprint

        public Fingerprint​(byte[] bytes)
        Initializes this object to the fingerprint of the byte array bytes, which must be non-null.
      • Fingerprint

        public Fingerprint​(byte[] bytes,
                           int start,
                           int length)
        Initializes this object to the fingerprint of the bytes bytes[start]..bytes[start+length-1].
      • Fingerprint

        public Fingerprint​(InputStream stream)
                    throws IOException
        Initializes this object to the fingerprint of the bytes in stream, which must be non-null.
        Throws:
        IOException - if an error is encountered reading stream.
      • Fingerprint

        public Fingerprint​(ByteBuffer buffer)
                    throws IOException
        Initializes this object to the fingerprint of the bytes in buffer, which must be non-null.
        Throws:
        IOException - if an error is encountered reading stream.
    • Method Detail

      • toBytes

        public byte[] toBytes()
        Returns the value of this fingerprint as a newly-allocated array of 8 bytes.

        Important: If the output of this function is subsequently fingerprinted, the probabilistic guarantee is lost. That is, there is a much higher liklihood of fingerprint collisions if fingerprint values are themselves fingerprinted in any way.

      • toBytes

        public byte[] toBytes​(byte[] buff)
        Returns the value of this fingerprint as an 8-byte array. Unlike toBytes(), this variant does not perform an allocation. Instead, the client passes in a buffer into which the fingerprint value is written. This can be used to get the values of a set of fingerprints without having to perform an allocation for each one.
        Parameters:
        buff - The buffer into which the bytes will be written. This array is required to be non-null and exactly 8 bytes in length. This buffer is returned.
      • toHexString

        public String toHexString()
        Returns the value of this fingerprint as an unsigned integer encoded in base 16 (hexideicmal), padded with leading zeros to a total length of 16 characters.

        Important: If the output of this function is subsequently fingerprinted, the probabilistic guarantee is lost. That is, there is a much higher liklihood of fingerprint collisions if fingerprint values are themselves fingerprinted in any way.

      • extend

        public Fingerprint extend​(String s)
        Extends this fingerprint by the characters of the String s, which must be non-null.
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(char[] chars)
        Extends this fingerprint by the characters chars[start]..chars[start+length-1].
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(char[] chars,
                                  int start,
                                  int len)
        Extends this fingerprint by the characters chars[start]..chars[start+length-1].
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(byte[] bytes,
                                  int start,
                                  int len)
        Extends this fingerprint by the bytes bytes[offset]..bytes[offset+length-1].
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(byte[] bytes)
        Extends this fingerprint by the bytes
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(int i)
        Extends this fingerprint by the integer i.
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(long i)
        Extends this fingerprint by the integer i.
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(char c)
        Extends this fingerprint by the character c.
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(byte b)
        Extends this fingerprint by the byte b.
        Returns:
        the resulting fingerprint.
      • extend

        public Fingerprint extend​(InputStream stream)
                           throws IOException
        Extends this fingerprint by the bytes of the stream stream, which must be non-null.
        Returns:
        the resulting fingerprint.
        Throws:
        IOException - if an error is encountered reading stream.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getRawFingerprint

        public long getRawFingerprint()