public class MapEventFilter<K,V> extends ExternalizableHelper implements Filter<MapEvent<K,V>>, ExternalizableLite, PortableObject
ObservableMap
listeners that are interested in particular subsets
of MapEvent notifications emitted by the map.
Usage examples:
new MapEventFilter(MapEventFilter.E_INSERT, new EqualsFilter("isMarried", Boolean.TRUE));
new MapEventFilter(MapEventFilter.E_DELETED);
new MapEventFilter(MapEventFilter.E_UPDATED, new EqualsFilter("LastName", "Smith"));
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));
ValueChangeEventFilter
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCache
Base.LoggingWriter, Base.StackFrame
Modifier and Type | Field and Description |
---|---|
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<V> |
m_filter
The event value(s) filter.
|
protected int |
m_nMask
The event mask.
|
CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, 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_RSVD_2, 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, MAX_DECO_HEADER_BYTES, PROPERTY_CONFIG, s_streamfactory, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
Constructor and Description |
---|
MapEventFilter()
Default constructor (necessary for the ExternalizableLite interface).
|
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 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<V> filter)
Construct a MapEventFilter that evaluates MapEvent objects
based on the specified combination of event types.
|
Modifier and Type | Method and 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
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.
|
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readByteArray, readCollection, readDate, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readInt, readInt, readIntArray2d, readLong, readLong, readMap, readMap, readObject, readObject, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, 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
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
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, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, 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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
and, asLimitFilter, associatedWith, forKeys, forPartitions, or, xor
public static final int E_INSERTED
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.public static final int E_UPDATED
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.public static final int E_DELETED
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.public static final int E_UPDATED_ENTERED
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.public static final int E_UPDATED_LEFT
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.public static final int E_UPDATED_WITHIN
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.public static final int E_ALL
public static final int E_KEYSET
QueryMap.keySet(com.tangosol.util.Filter)
query should be evaluated.protected int m_nMask
public MapEventFilter()
public MapEventFilter(int nMask)
Using this constructor is equivalent to: new MapEventFilter(nMask, null);
nMask
- any combination of E_INSERTED, E_UPDATED and E_DELETED,
E_UPDATED_ENTERED, E_UPDATED_WITHIN, E_UPDATED_LEFTpublic MapEventFilter(Filter<V> filter)
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);
filter
- the filter passed previously to a keySet() query methodpublic int getEventMask()
public Filter<V> getFilter()
public boolean equals(Object o)
public int hashCode()
Object.hashCode()
contract.protected String getDescription()
public String toString()
public void readExternal(DataInput in) throws IOException
readExternal
in interface ExternalizableLite
in
- the DataInput stream to read data from in order to restore
the state of this objectIOException
- if an I/O exception occursNotActiveException
- if the object is not in its initial
state, and therefore cannot be deserialized intopublic void writeExternal(DataOutput out) throws IOException
writeExternal
in interface ExternalizableLite
out
- the DataOutput stream to write the state of this object toIOException
- if an I/O exception occurspublic void readExternal(PofReader in) throws IOException
readExternal
in interface PortableObject
in
- the PofReader from which to read the object's stateIOException
- if an I/O error occurspublic void writeExternal(PofWriter out) throws IOException
writeExternal
in interface PortableObject
out
- the PofWriter to which to write the object's stateIOException
- if an I/O error occurs