Package com.google.common.hash
Interface Funnel<T>
- All Superinterfaces:
Serializable
- All Known Implementing Classes:
Funnels.ByteArrayFunnel
,Funnels.IntegerFunnel
,Funnels.LongFunnel
,Funnels.SequentialFunnel
,Funnels.StringCharsetFunnel
,Funnels.UnencodedCharsFunnel
An object which can send data from an object of type
T
into a PrimitiveSink
.
Implementations for common types can be found in Funnels
.
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
funnel
(T from, PrimitiveSink into) Sends a stream of data from thefrom
object into the sinkinto
.
-
Method Details
-
funnel
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
)
-