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

com.tangosol.util.filter
Class MapEventFilter

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.MapEventFilter
All Implemented Interfaces:
ExternalizableLite, PortableObject, Filter, Serializable

public class MapEventFilter
extends ExternalizableHelper
implements Filter, ExternalizableLite, PortableObject

Filter which evaluates the content of a MapEvent object according to the specified criteria. This filter is intended to be used by various ObservableMap listeners that are interested in particular subsets of MapEvent notifications emitted by the map.

Usage examples:

Since:
Coherence 2.3
Author:
gg 2003.09.22
See Also:
ValueChangeEventFilter

Field Summary
static int E_ALL
          This value indicates that all events should be evaluated.
static int E_DELETED
          This value indicates that ENTRY_DELETED events should be evaluated.
static int E_INSERTED
          This value indicates that ENTRY_INSERTED events should be evaluated.
static int E_KEYSET
          This value indicates that all events that would affect the result of a QueryMap.keySet(com.tangosol.util.Filter) query should be evaluated.
static int E_UPDATED
          This value indicates that ENTRY_UPDATED events should be evaluated.
static int E_UPDATED_ENTERED
          This value indicates that ENTRY_UPDATED events should be evaluated, but only if filter evaluation is false for the old value and true for the new value.
static int E_UPDATED_LEFT
          This value indicates that ENTRY_UPDATED events should be evaluated, but only if filter evaluation is true for the old value and false for the new value.
static int E_UPDATED_WITHIN
          This value indicates that ENTRY_UPDATED events should be evaluated, but only if filter evaluation is true for both the old and the new value.
protected  Filter m_filter
          The event value(s) filter.
protected  int m_nMask
          The event mask.
 
Constructor Summary
MapEventFilter()
          Default constructor (necessary for the ExternalizableLite interface).
MapEventFilter(Filter filter)
          Construct a MapEventFilter that evaluates MapEvent objects that would affect the results of a keySet filter issued by a previous call to QueryMap.keySet(com.tangosol.util.Filter).
MapEventFilter(int nMask)
          Construct a MapEventFilter that evaluates MapEvent objects based on the specified combination of event types.
MapEventFilter(int nMask, Filter filter)
          Construct a MapEventFilter that evaluates MapEvent objects based on the specified combination of event types.
 
Method Summary
 boolean equals(Object o)
          Compare the MapEventFilter with another object to determine equality.
 boolean evaluate(Object o)
          Apply the test to the object.
 int getEventMask()
          Obtain the event mask.
 Filter getFilter()
          Obtain the Filter object used to evaluate the event value(s).
 int hashCode()
          Determine a hash value for the MapEventFilter 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
 

Field Detail

E_INSERTED

public static final int E_INSERTED
This value indicates that ENTRY_INSERTED events should be evaluated. The event will be fired if there is no filter specified or the filter evaluates to true for a new value.

See Also:
Constant Field Values

E_UPDATED

public static final int E_UPDATED
This value indicates that ENTRY_UPDATED events should be evaluated. The event will be fired if there is no filter specified or the filter evaluates to true when applied to either old or new value.

See Also:
Constant Field Values

E_DELETED

public static final int E_DELETED
This value indicates that ENTRY_DELETED events should be evaluated. The event will be fired if there is no filter specified or the filter evaluates to true for an old value.

See Also:
Constant Field Values

E_UPDATED_ENTERED

public static final int E_UPDATED_ENTERED
This value indicates that ENTRY_UPDATED events should be evaluated, but only if filter evaluation is false for the old value and true for the new value. This corresponds to an item that was not in a keySet filter result changing such that it would now be in that keySet filter result.

Since:
Coherence 3.1
See Also:
Constant Field Values

E_UPDATED_LEFT

public static final int E_UPDATED_LEFT
This value indicates that ENTRY_UPDATED events should be evaluated, but only if filter evaluation is true for the old value and false for the new value. This corresponds to an item that was in a keySet filter result changing such that it would no longer be in that keySet filter result.

Since:
Coherence 3.1
See Also:
Constant Field Values

E_UPDATED_WITHIN

public static final int E_UPDATED_WITHIN
This value indicates that ENTRY_UPDATED events should be evaluated, but only if filter evaluation is true for both the old and the new value. This corresponds to an item that was in a keySet filter result changing but not leaving the keySet filter result.

Since:
Coherence 3.1
See Also:
Constant Field Values

E_ALL

public static final int E_ALL
This value indicates that all events should be evaluated.

See Also:
Constant Field Values

E_KEYSET

public static final int E_KEYSET
This value indicates that all events that would affect the result of a QueryMap.keySet(com.tangosol.util.Filter) query should be evaluated.

Since:
Coherence 3.1
See Also:
Constant Field Values

m_nMask

protected int m_nMask
The event mask.


m_filter

protected Filter m_filter
The event value(s) filter.

Constructor Detail

MapEventFilter

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


MapEventFilter

public MapEventFilter(int nMask)
Construct a MapEventFilter that evaluates MapEvent objects based on the specified combination of event types.

Using this constructor is equivalent to: new MapEventFilter(nMask, null);

Parameters:
nMask - any combination of E_INSERTED, E_UPDATED and E_DELETED, E_UPDATED_ENTERED, E_UPDATED_WITHIN, E_UPDATED_LEFT
Since:
Coherence 3.1

MapEventFilter

public MapEventFilter(Filter filter)
Construct a MapEventFilter that evaluates MapEvent objects that would affect the results of a keySet filter issued by a previous call to QueryMap.keySet(com.tangosol.util.Filter). It is possible to easily implement continuous query functionality.

Using this constructor is equivalent to: new MapEventFilter(E_KEYSET, filter);

Parameters:
filter - the filter passed previously to a keySet() query method
Since:
Coherence 3.1

MapEventFilter

public MapEventFilter(int nMask,
                      Filter filter)
Construct a MapEventFilter that evaluates MapEvent objects based on the specified combination of event types.

Parameters:
nMask - combination of any of the E_* values
filter - (optional) the filter used for evaluating event values
Method Detail

evaluate

public boolean evaluate(Object o)
Apply the test to the object.

Specified by:
evaluate in interface Filter
Returns:
true if the test passes, false otherwise
Throws:
ClassCastException - if the specified object is not an instance of MapEvent

getEventMask

public int getEventMask()
Obtain the event mask. The mask value is concatenation of any of the E_* values.

Returns:
the event mask

getFilter

public Filter getFilter()
Obtain the Filter object used to evaluate the event value(s).

Returns:
the filter used to evaluate the event value(s)

equals

public boolean equals(Object o)
Compare the MapEventFilter with another object to determine equality.

Returns:
true iff this MapEventFilter and the passed object are equivalent filters

hashCode

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

Returns:
an integer hash value for this MapEventFilter 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