Package com.google.common.hash
Interface Funnel<T extends @Nullable java.lang.Object>
-
- All Superinterfaces:
java.io.Serializable
@Beta @DoNotMock("Implement with a lambda") public interface Funnel<T extends @Nullable java.lang.Object> extends java.io.Serializable
An object which can send data from an object of typeT
into aPrimitiveSink
. Implementations for common types can be found inFunnels
.Note that serialization of bloom filters requires the proper serialization of funnels. When possible, it is recommended that funnels be implemented as a single-element enum to maintain serialization guarantees. See Effective Java (2nd Edition), Item 3: "Enforce the singleton property with a private constructor or an enum type". For example:
public enum PersonFunnel implements Funnel<Person> { INSTANCE; public void funnel(Person person, PrimitiveSink into) { into.putUnencodedChars(person.getFirstName()) .putUnencodedChars(person.getLastName()) .putInt(person.getAge()); } }
- Since:
- 11.0
- Author:
- Dimitris Andreou
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
funnel(T from, PrimitiveSink into)
Sends a stream of data from thefrom
object into the sinkinto
.
-
-
-
Method Detail
-
funnel
void funnel(T from, PrimitiveSink into)
Sends a stream of data from thefrom
object into the sinkinto
. There is no requirement that this data be complete enough to fully reconstitute the object later.- Since:
- 12.0 (in Guava 11.0,
PrimitiveSink
was namedSink
)
-
-