abstract class AbstractNonStreamingHashFunction extends java.lang.Object implements HashFunction
HashFunction, appropriate for non-streaming algorithms.
All the hash computation done using newHasher() are delegated to the HashFunction.hashBytes(byte[], int, int) method.| Modifier and Type | Class and Description |
|---|---|
private class |
AbstractNonStreamingHashFunction.BufferingHasher
In-memory stream-based implementation of Hasher.
|
private static class |
AbstractNonStreamingHashFunction.ExposedByteArrayOutputStream |
| Constructor and Description |
|---|
AbstractNonStreamingHashFunction() |
| Modifier and Type | Method and Description |
|---|---|
HashCode |
hashBytes(byte[] input)
Shortcut for
newHasher().putBytes(input).hash(). |
HashCode |
hashInt(int input)
Shortcut for
newHasher().putInt(input).hash(); returns the hash code for the given
int value, interpreted in little-endian byte order. |
HashCode |
hashLong(long input)
Shortcut for
newHasher().putLong(input).hash(); returns the hash code for the
given long value, interpreted in little-endian byte order. |
<T> HashCode |
hashObject(T instance,
Funnel<? super T> funnel)
Shortcut for
newHasher().putObject(instance, funnel).hash(). |
HashCode |
hashString(java.lang.CharSequence input,
java.nio.charset.Charset charset)
Shortcut for
newHasher().putString(input, charset).hash(). |
HashCode |
hashUnencodedChars(java.lang.CharSequence input)
Shortcut for
newHasher().putUnencodedChars(input).hash(). |
Hasher |
newHasher()
Begins a new hash code computation by returning an initialized, stateful
Hasher instance that is ready to receive data. |
Hasher |
newHasher(int expectedInputSize)
Begins a new hash code computation as
HashFunction.newHasher(), but provides a hint of the
expected size of the input (in bytes). |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitbits, hashBytespublic Hasher newHasher()
HashFunctionHasher instance that is ready to receive data. Example:
HashFunction hf = Hashing.md5();
HashCode hc = hf.newHasher()
.putLong(id)
.putBoolean(isActive)
.hash();newHasher in interface HashFunctionpublic Hasher newHasher(int expectedInputSize)
HashFunctionHashFunction.newHasher(), but provides a hint of the
expected size of the input (in bytes). This is only important for non-streaming hash
functions (hash functions that need to buffer their whole input before processing any
of it).newHasher in interface HashFunctionpublic <T> HashCode hashObject(T instance, Funnel<? super T> funnel)
HashFunctionnewHasher().putObject(instance, funnel).hash(). The implementation
might perform better than its longhand equivalent, but should not perform worse.hashObject in interface HashFunctionpublic HashCode hashUnencodedChars(java.lang.CharSequence input)
HashFunctionnewHasher().putUnencodedChars(input).hash(). The implementation
might perform better than its longhand equivalent, but should not perform worse.
Note that no character encoding is performed; the low byte and high byte of each char
are hashed directly (in that order).hashUnencodedChars in interface HashFunctionpublic HashCode hashString(java.lang.CharSequence input, java.nio.charset.Charset charset)
HashFunctionnewHasher().putString(input, charset).hash(). Characters are encoded
using the given Charset. The implementation might perform better than its
longhand equivalent, but should not perform worse.hashString in interface HashFunctionpublic HashCode hashInt(int input)
HashFunctionnewHasher().putInt(input).hash(); returns the hash code for the given
int value, interpreted in little-endian byte order. The implementation might
perform better than its longhand equivalent, but should not perform worse.hashInt in interface HashFunctionpublic HashCode hashLong(long input)
HashFunctionnewHasher().putLong(input).hash(); returns the hash code for the
given long value, interpreted in little-endian byte order. The implementation
might perform better than its longhand equivalent, but should not perform worse.hashLong in interface HashFunctionpublic HashCode hashBytes(byte[] input)
HashFunctionnewHasher().putBytes(input).hash(). The implementation
might perform better than its longhand equivalent, but should not perform
worse.hashBytes in interface HashFunction