com.google.common.hash
Interface Funnel<T>

All Superinterfaces:
java.io.Serializable

@Beta
public interface Funnel<T>
extends java.io.Serializable

An object which can send data from an object of type T into a PrimitiveSink.

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.putString(person.getFirstName())
           .putString(person.getLastName())
           .putInt(person.getAge());
     }
   }

Since:
11.0

Method Summary
 void funnel(T from, PrimitiveSink into)
          Sends a stream of data from the from object into the sink into.
 

Method Detail

funnel

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)