Package com.tangosol.util.filter
Class MapEventFilter<K,V>
- java.lang.Object
-
- com.tangosol.util.Base
-
- com.tangosol.util.BitHelper
-
- com.tangosol.util.ExternalizableHelper
-
- com.tangosol.util.filter.MapEventFilter<K,V>
-
- All Implemented Interfaces:
ExternalizableLite
,PortableObject
,Filter<MapEvent<K,V>>
,Serializable
- Direct Known Subclasses:
CacheEventFilter
public class MapEventFilter<K,V> extends ExternalizableHelper implements Filter<MapEvent<K,V>>, ExternalizableLite, PortableObject
Filter which evaluates the content of a MapEvent object according to the specified criteria. This filter is intended to be used by variousObservableMap
listeners that are interested in particular subsets of MapEvent notifications emitted by the map.Usage examples:
- a filter that evaluates to true if an Employee object is inserted into
a cache with a value of Married property set to true.
new MapEventFilter(MapEventFilter.E_INSERT, new EqualsFilter("isMarried", Boolean.TRUE));
- a filter that evaluates to true if any object is removed from a cache.
new MapEventFilter(MapEventFilter.E_DELETED);
- a filter that evaluates to true if there is an update to an Employee
object where either an old or new value of LastName property equals to
"Smith"
new MapEventFilter(MapEventFilter.E_UPDATED, new EqualsFilter("LastName", "Smith"));
- a filter that is used to keep a cached keySet result based on some map
filter up-to-date.
final Set setKeys = new HashSet(); final Filter filterEvt = new MapEventFilter(filterMap); MapListener listener = new AbstractMapListener() { public void entryInserted(MapEvent evt) { setKeys.add(evt.getKey()); } public void entryDeleted(MapEvent evt) { setKeys.remove(evt.getKey()); } }; map.addMapListener(listener, filterEvt, true); setKeys.addAll(map.keySet(filterMap));
- Since:
- Coherence 2.3
- Author:
- gg 2003.09.22
- See Also:
ValueChangeEventFilter
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelper
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCache
-
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
-
Field Summary
Fields Modifier and Type Field Description static int
E_ALL
This value indicates that all events should be evaluated.static int
E_DELETED
This value indicates thatENTRY_DELETED
events should be evaluated.static int
E_INSERTED
This value indicates thatENTRY_INSERTED
events should be evaluated.static int
E_KEYSET
This value indicates that all events that would affect the result of aQueryMap.keySet(com.tangosol.util.Filter)
query should be evaluated.static int
E_UPDATED
This value indicates thatENTRY_UPDATED
events should be evaluated.static int
E_UPDATED_ENTERED
This value indicates thatENTRY_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 thatENTRY_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 thatENTRY_UPDATED
events should be evaluated, but only if filter evaluation is true for both the old and the new value.protected Filter<V>
m_filter
The event value(s) filter.protected int
m_nMask
The event mask.-
Fields inherited from class com.tangosol.util.ExternalizableHelper
BINARY_SIZE, CHUNK_SIZE, CHUNK_THRESHOLD, CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, DECO_BACKUP, DECO_CUSTOM, DECO_EXPIRY, DECO_ID_MAX, DECO_ID_MIN, DECO_JCACHE, DECO_JCACHE_SYNTHETIC, DECO_MEMCACHED, DECO_PUSHREP, DECO_QUEUE_METADATA, DECO_RSVD_1, DECO_STORE, DECO_TX, DECO_VALUE, DECO_WLS, EMPTY_BINARY_ARRAY, FMT_B_ARRAY, FMT_BIN_DECO, FMT_BIN_EXT_DECO, FMT_BINARY, FMT_BOOLEAN, FMT_BYTE, FMT_DECIMAL, FMT_DOUBLE, FMT_EXT, FMT_FLOAT, FMT_IDO, FMT_INT, FMT_INTEGER, FMT_LONG, FMT_NONE, FMT_NULL, FMT_OBJ_EXT, FMT_OBJ_SER, FMT_OPT, FMT_OPT_DOUBLE, FMT_OPT_INT, FMT_OPT_LONG, FMT_SHORT, FMT_STRING, FMT_UNKNOWN, FMT_XML_BEAN, FMT_XML_SER, FORCE_RESOLVING_STREAMS, LAMBDA_SERIALIZATION, MAX_DECO_HEADER_BYTES, PACKED_INT_SIZE, PACKED_LONG_SIZE, PROPERTY_CONFIG, s_streamfactory, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
-
-
Constructor Summary
Constructors Constructor Description MapEventFilter()
Default constructor (necessary for the ExternalizableLite interface).MapEventFilter(int nMask)
Construct a MapEventFilter that evaluates MapEvent objects based on the specified combination of event types.MapEventFilter(int nMask, Filter<V> filter)
Construct a MapEventFilter that evaluates MapEvent objects based on the specified combination of event types.MapEventFilter(Filter<V> filter)
Construct a MapEventFilter that evaluates MapEvent objects that would affect the results of a keySet filter issued by a previous call toQueryMap.keySet(com.tangosol.util.Filter)
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
Compare the MapEventFilter with another object to determine equality.boolean
evaluate(MapEvent<K,V> event)
Apply the test to the input argument.protected String
getDescription()
Get the filter's description.int
getEventMask()
Obtain the event mask.Filter<V>
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 generalObject.hashCode()
contract.void
readExternal(PofReader in)
Restore the contents of a user type instance by reading its state using the specified PofReader object.void
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from the passed DataInput object.String
toString()
Return a human-readable description for this Filter.void
writeExternal(PofWriter out)
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.void
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into the passed DataOutput object.-
Methods inherited from class com.tangosol.util.ExternalizableHelper
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, checkObjectInputFilter, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getConfigSerialFilter, getConfigSerialFilterFactory, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectInputFilter, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isPatchCompatible, isPatchCompatible, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readBooleanArray, readByteArray, readCharArray, readCharArray, readCollection, readDate, readDoubleArray, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readFloatArray, readInt, readInt, readIntArray, readIntArray, readIntArray2d, readLargeBooleanArray, readLargeByteArray, readLargeCharArray, readLargeDoubleArray, readLargeFloatArray, readLargeIntArray, readLargeLongArray, readLargeObjectArray, readLargeStringArray, readLong, readLong, readLongArray, readLongArray, readMap, readMap, readObject, readObject, readObjectArray, readObjectArray, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, validateLoadArray, validateLoadClass, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray2d, writeLong, writeLong, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializable
-
Methods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLong
-
Methods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.tangosol.util.Filter
and, asLimitFilter, associatedWith, forKeys, forPartitions, or, toExpression, xor
-
-
-
-
Field Detail
-
E_INSERTED
public static final int E_INSERTED
This value indicates thatENTRY_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 thatENTRY_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 thatENTRY_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 thatENTRY_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 thatENTRY_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 thatENTRY_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 aQueryMap.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.
-
-
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<V> filter)
Construct a MapEventFilter that evaluates MapEvent objects that would affect the results of a keySet filter issued by a previous call toQueryMap.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
-
-
Method Detail
-
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<V> 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.
-
hashCode
public int hashCode()
Determine a hash value for the MapEventFilter object according to the generalObject.hashCode()
contract.
-
getDescription
protected String getDescription()
Get the filter's description.- Returns:
- this filter's description
-
toString
public String toString()
Return a human-readable description for this 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 interfaceExternalizableLite
- 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 occursNotActiveException
- 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 interfaceExternalizableLite
- 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 interfacePortableObject
- 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 interfacePortableObject
- Parameters:
out
- the PofWriter to which to write the object's state- Throws:
IOException
- if an I/O error occurs
-
-