Top Description Methods
com.google.common.hash

public Interface Funnel<T extends @Nullable Object>

extends Serializable
Known Direct Implementers
com.google.common.hash.Funnels.ByteArrayFunnel, com.google.common.hash.Funnels.UnencodedCharsFunnel, com.google.common.hash.Funnels.StringCharsetFunnel, com.google.common.hash.Funnels.IntegerFunnel, com.google.common.hash.Funnels.SequentialFunnel, com.google.common.hash.Funnels.LongFunnel
Annotations
@Beta
@DoNotMock:Implement with a lambda
@ElementTypesAreNonnullByDefault
Imports
com.google.common.annotations.Beta, com.google.errorprone.annotations.DoNotMock, java.io.Serializable, org.checkerframework.checker.nullness.qual.Nullable

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());
  }
}
Author
Dimitris Andreou
Since
11.0

Method Summary

Modifier and TypeMethod and Description
public void
funnel(T from, PrimitiveSink into)

Sends a stream of data from the from object into the sink into.

Method Detail

funnelback to summary
public void funnel(T from, PrimitiveSink into)

Sends a stream of data from the from object into the sink into. 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 named Sink)