CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.util.filter
Class ArrayFilter

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.util.BitHelper
          extended by com.tangosol.util.ExternalizableHelper
              extended by com.tangosol.util.filter.ArrayFilter
All Implemented Interfaces:
ExternalizableLite, PortableObject, Filter, EntryFilter, IndexAwareFilter, Serializable
Direct Known Subclasses:
AllFilter, AnyFilter, XorFilter

public abstract class ArrayFilter
extends ExternalizableHelper
implements IndexAwareFilter, ExternalizableLite, PortableObject

Filter which is a logical operator of a filter array.

Author:
cp/gg 2002.11.01

Nested Class Summary
protected static class ArrayFilter.WeightedFilter
          A thin wrapper around a Filter allowing for sorting the filters according to their effectiveness.
 
Field Summary
protected  Filter[] m_aFilter
          The Filter array.
 
Constructor Summary
ArrayFilter()
          Default constructor (necessary for the ExternalizableLite interface).
ArrayFilter(Filter[] aFilter)
          Construct a logical filter that applies a binary operator to a filter array.
 
Method Summary
protected  Filter applyFilter(IndexAwareFilter filter, Map mapIndexes, Set setKeys)
          Apply the specified IndexAwareFilter to the specified keySet.
protected  ArrayFilter.WeightedFilter[] calculateFilters(Map mapIndexes, Set setKeys)
          Calculate the effectiveness and sort all the participating filters according to their effectiveness.
 boolean equals(Object o)
          Compare the ArrayFilter with another object to determine equality.
 Filter[] getFilters()
          Obtain the Filter array.
 int hashCode()
          Determine a hash value for the ArrayFilter object according to the general Object.hashCode() contract.
 void readExternal(DataInput in)
          Restore the contents of this object by loading the object's state from the passed DataInput object.
 void readExternal(PofReader in)
          Restore the contents of a user type instance by reading its state using the specified PofReader object.
 String toString()
          Return a human-readable description for this Filter.
 void writeExternal(DataOutput out)
          Save the contents of this object by storing the object's state into the passed DataOutput object.
 void writeExternal(PofWriter out)
          Save the contents of a POF user type instance by writing its state using the specified PofWriter object.
 
Methods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, toBitString, toBitString, toBitString
 
Methods inherited from interface com.tangosol.util.filter.IndexAwareFilter
applyIndex, calculateEffectiveness
 
Methods inherited from interface com.tangosol.util.filter.EntryFilter
evaluateEntry
 
Methods inherited from interface com.tangosol.util.Filter
evaluate
 

Field Detail

m_aFilter

protected Filter[] m_aFilter
The Filter array.

Constructor Detail

ArrayFilter

public ArrayFilter()
Default constructor (necessary for the ExternalizableLite interface).


ArrayFilter

public ArrayFilter(Filter[] aFilter)
Construct a logical filter that applies a binary operator to a filter array. The result is defined as:

aFilter[0] <op> aFilter[1] ... <op> aFilter[n]

Parameters:
aFilter - the filter array
Method Detail

getFilters

public Filter[] getFilters()
Obtain the Filter array.

Returns:
the Filter array

calculateFilters

protected ArrayFilter.WeightedFilter[] calculateFilters(Map mapIndexes,
                                                        Set setKeys)
Calculate the effectiveness and sort all the participating filters according to their effectiveness.

Parameters:
mapIndexes - the available MapIndex objects keyed by the related ValueExtractor; read-only
setKeys - the set of keys that will be filtered; read-only
Returns:
the array of WeightedFilter objects sorted by the effectiveness (the most effective in the front)

applyFilter

protected Filter applyFilter(IndexAwareFilter filter,
                             Map mapIndexes,
                             Set setKeys)
Apply the specified IndexAwareFilter to the specified keySet.

Parameters:
filter - the IndexAwareFilter to apply an index to
mapIndexes - the available MapIndex objects keyed by the related ValueExtractor; read-only
setKeys - the mutable set of keys that remain to be filtered
Returns:
a Filter object that can be used to process the remaining keys, or null if no additional filter processing is necessary

equals

public boolean equals(Object o)
Compare the ArrayFilter with another object to determine equality. Two ArrayFilter objects are considered equal iff they belong to exactly the same class and their filter arrays are equal.

Returns:
true iff this ArrayFilter and the passed object are equivalent ArrayFilters

hashCode

public int hashCode()
Determine a hash value for the ArrayFilter object according to the general Object.hashCode() contract.

Returns:
an integer hash value for this ArrayFilter object

toString

public String toString()
Return a human-readable description for this Filter.

Returns:
a String description of the Filter

readExternal

public void readExternal(DataInput in)
                  throws IOException
Restore the contents of this object by loading the object's state from the passed DataInput object.

Specified by:
readExternal in interface ExternalizableLite
Parameters:
in - the DataInput stream to read data from in order to restore the state of this object
Throws:
IOException - if an I/O exception occurs
NotActiveException - if the object is not in its initial state, and therefore cannot be deserialized into

writeExternal

public void writeExternal(DataOutput out)
                   throws IOException
Save the contents of this object by storing the object's state into the passed DataOutput object.

Specified by:
writeExternal in interface ExternalizableLite
Parameters:
out - the DataOutput stream to write the state of this object to
Throws:
IOException - if an I/O exception occurs

readExternal

public void readExternal(PofReader in)
                  throws IOException
Restore the contents of a user type instance by reading its state using the specified PofReader object.

Specified by:
readExternal in interface PortableObject
Parameters:
in - the PofReader from which to read the object's state
Throws:
IOException - if an I/O error occurs

writeExternal

public void writeExternal(PofWriter out)
                   throws IOException
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.

Specified by:
writeExternal in interface PortableObject
Parameters:
out - the PofWriter to which to write the object's state
Throws:
IOException - if an I/O error occurs

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation