org.onelab.filter
Class Filter

java.lang.Object
  extended by org.onelab.filter.Filter
All Implemented Interfaces:
Writable
Direct Known Subclasses:
BloomFilter, CountingBloomFilter, DynamicBloomFilter

public abstract class Filter
extends Object
implements Writable

Defines the general behavior of a filter.

A filter is a data structure which aims at offering a lossy summary of a set A. The key idea is to map entries of A (also called keys) into several positions in a vector through the use of several hash functions.

Typically, a filter will be implemented as a Bloom filter (or a Bloom filter extension).

It must be extended in order to define the real behavior.

Version:
1.0 - 2 Feb. 07
See Also:
The general behavior of a filter, The general behavior of a key, A hash function

Field Summary
protected  HashFunction hash
          The hash function used to map a key to several positions in the vector.
 
Constructor Summary
protected Filter()
           
protected Filter(int vectorSize, int nbHash)
          Constructor.
 
Method Summary
 void add(Collection<Key> keys)
          Adds a collection of keys to this filter.
abstract  void add(Key key)
          Adds a key to this filter.
 void add(Key[] keys)
          Adds an array of keys to this filter.
 void add(List<Key> keys)
          Adds a list of keys to this filter.
abstract  void and(Filter filter)
          Peforms a logical AND between this filter and a specified filter.
abstract  boolean membershipTest(Key key)
          Determines wether a specified key belongs to this filter.
abstract  void not()
          Performs a logical NOT on this filter.
abstract  void or(Filter filter)
          Peforms a logical OR between this filter and a specified filter.
 void readFields(DataInput in)
          Deserialize the fields of this object from in.
 void write(DataOutput out)
          Serialize the fields of this object to out.
abstract  void xor(Filter filter)
          Peforms a logical XOR between this filter and a specified filter.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hash

protected HashFunction hash
The hash function used to map a key to several positions in the vector.

Constructor Detail

Filter

protected Filter()

Filter

protected Filter(int vectorSize,
                 int nbHash)
Constructor.

Parameters:
vectorSize - The vector size of this filter.
nbHash - The number of hash functions to consider.
Method Detail

add

public abstract void add(Key key)
Adds a key to this filter.

Parameters:
key - The key to add.

membershipTest

public abstract boolean membershipTest(Key key)
Determines wether a specified key belongs to this filter.

Parameters:
key - The key to test.
Returns:
boolean True if the specified key belongs to this filter. False otherwise.

and

public abstract void and(Filter filter)
Peforms a logical AND between this filter and a specified filter.

Invariant: The result is assigned to this filter.

Parameters:
filter - The filter to AND with.

or

public abstract void or(Filter filter)
Peforms a logical OR between this filter and a specified filter.

Invariant: The result is assigned to this filter.

Parameters:
filter - The filter to OR with.

xor

public abstract void xor(Filter filter)
Peforms a logical XOR between this filter and a specified filter.

Invariant: The result is assigned to this filter.

Parameters:
filter - The filter to XOR with.

not

public abstract void not()
Performs a logical NOT on this filter.

The result is assigned to this filter.


add

public void add(List<Key> keys)
Adds a list of keys to this filter.

Parameters:
keys - The list of keys.

add

public void add(Collection<Key> keys)
Adds a collection of keys to this filter.

Parameters:
keys - The collection of keys.

add

public void add(Key[] keys)
Adds an array of keys to this filter.

Parameters:
keys - The array of keys.

write

public void write(DataOutput out)
           throws IOException
Serialize the fields of this object to out.

Specified by:
write in interface Writable
Parameters:
out - DataOuput to serialize this object into.
Throws:
IOException

readFields

public void readFields(DataInput in)
                throws IOException
Deserialize the fields of this object from in.

For efficiency, implementations should attempt to re-use storage in the existing object where possible.

Specified by:
readFields in interface Writable
Parameters:
in - DataInput to deseriablize this object from.
Throws:
IOException


Copyright © 2006 The Apache Software Foundation