Class AbstractHasher

    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractHasher()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Hasher putBoolean​(boolean b)
      Equivalent to putByte(b ? (byte) 1 : (byte) 0).
      Hasher putBytes​(byte[] bytes)
      Puts an array of bytes into this sink.
      Hasher putBytes​(byte[] bytes, int off, int len)
      Puts a chunk of an array of bytes into this sink.
      Hasher putBytes​(java.nio.ByteBuffer b)
      Puts the remaining bytes of a byte buffer into this sink.
      Hasher putChar​(char c)
      Puts a character into this sink.
      Hasher putDouble​(double d)
      Equivalent to putLong(Double.doubleToRawLongBits(d)).
      Hasher putFloat​(float f)
      Equivalent to putInt(Float.floatToRawIntBits(f)).
      Hasher putInt​(int i)
      Puts an int into this sink.
      Hasher putLong​(long l)
      Puts a long into this sink.
      <T> Hasher putObject​(T instance, Funnel<? super T> funnel)
      A simple convenience for funnel.funnel(object, this).
      Hasher putShort​(short s)
      Puts a short into this sink.
      Hasher putString​(java.lang.CharSequence charSequence, java.nio.charset.Charset charset)
      Equivalent to putBytes(charSequence.toString().getBytes(charset)).
      Hasher putUnencodedChars​(java.lang.CharSequence charSequence)
      Equivalent to processing each char value in the CharSequence, in order.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractHasher

        AbstractHasher()
    • Method Detail

      • putDouble

        public final Hasher putDouble​(double d)
        Description copied from interface: Hasher
        Equivalent to putLong(Double.doubleToRawLongBits(d)).
        Specified by:
        putDouble in interface Hasher
        Specified by:
        putDouble in interface PrimitiveSink
      • putFloat

        public final Hasher putFloat​(float f)
        Description copied from interface: Hasher
        Equivalent to putInt(Float.floatToRawIntBits(f)).
        Specified by:
        putFloat in interface Hasher
        Specified by:
        putFloat in interface PrimitiveSink
      • putUnencodedChars

        public Hasher putUnencodedChars​(java.lang.CharSequence charSequence)
        Description copied from interface: Hasher
        Equivalent to processing each char value in the CharSequence, in order. In other words, no character encoding is performed; the low byte and high byte of each char are hashed directly (in that order). The input must not be updated while this method is in progress.

        Warning: This method will produce different output than most other languages do when running the same hash function on the equivalent input. For cross-language compatibility, use Hasher.putString(java.lang.CharSequence, java.nio.charset.Charset), usually with a charset of UTF-8. For other use cases, use putUnencodedChars.

        Specified by:
        putUnencodedChars in interface Hasher
        Specified by:
        putUnencodedChars in interface PrimitiveSink
      • putString

        public Hasher putString​(java.lang.CharSequence charSequence,
                                java.nio.charset.Charset charset)
        Description copied from interface: Hasher
        Equivalent to putBytes(charSequence.toString().getBytes(charset)).

        Warning: This method, which reencodes the input before hashing it, is useful only for cross-language compatibility. For other use cases, prefer Hasher.putUnencodedChars(java.lang.CharSequence), which is faster, produces the same output across Java releases, and hashes every char in the input, even if some are invalid.

        Specified by:
        putString in interface Hasher
        Specified by:
        putString in interface PrimitiveSink
      • putBytes

        public Hasher putBytes​(byte[] bytes)
        Description copied from interface: PrimitiveSink
        Puts an array of bytes into this sink.
        Specified by:
        putBytes in interface Hasher
        Specified by:
        putBytes in interface PrimitiveSink
        Parameters:
        bytes - a byte array
        Returns:
        this instance
      • putBytes

        public Hasher putBytes​(byte[] bytes,
                               int off,
                               int len)
        Description copied from interface: PrimitiveSink
        Puts a chunk of an array of bytes into this sink. bytes[off] is the first byte written, bytes[off + len - 1] is the last.
        Specified by:
        putBytes in interface Hasher
        Specified by:
        putBytes in interface PrimitiveSink
        Parameters:
        bytes - a byte array
        off - the start offset in the array
        len - the number of bytes to write
        Returns:
        this instance
      • putBytes

        public Hasher putBytes​(java.nio.ByteBuffer b)
        Description copied from interface: PrimitiveSink
        Puts the remaining bytes of a byte buffer into this sink. bytes.position() is the first byte written, bytes.limit() - 1 is the last. The position of the buffer will be equal to the limit when this method returns.
        Specified by:
        putBytes in interface Hasher
        Specified by:
        putBytes in interface PrimitiveSink
        Parameters:
        b - a byte buffer
        Returns:
        this instance
      • putObject

        public <T> Hasher putObject​(T instance,
                                    Funnel<? super T> funnel)
        Description copied from interface: Hasher
        A simple convenience for funnel.funnel(object, this).
        Specified by:
        putObject in interface Hasher