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 typeTinto 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 voidfunnel(T from, PrimitiveSink into)Sends a stream of data from thefromobject into the sinkinto.
-
-
-
Method Detail
-
funnel
void funnel(T from, PrimitiveSink into)
Sends a stream of data from thefromobject 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,
PrimitiveSinkwas namedSink)
-
-