public class ConditionalProcessor<K,V,T> extends AbstractProcessor<K,V,T> implements ExternalizableLite, PortableObject
If the underlying filter expects to evaluate existent entries only (i.e.
entries for which
isPresent()
is
true), it should be combined with a
PresentFilter
as follows:
Filter filterPresent = new AndFilter(PresentFilter.INSTANCE, filter);
PresentFilter
Base.LoggingWriter, Base.StackFrame
Modifier and Type | Field and Description |
---|---|
protected Filter<V> |
m_filter
The underlying filter.
|
protected InvocableMap.EntryProcessor<K,V,T> |
m_processor
The underlying entry processor.
|
Constructor and Description |
---|
ConditionalProcessor()
Default constructor (necessary for the ExternalizableLite interface).
|
ConditionalProcessor(Filter<V> filter,
InvocableMap.EntryProcessor<K,V,T> processor)
Construct a ConditionalProcessor for the specified filter and the
processor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o)
Compare the ConditionalProcessor with another object to determine
equality.
|
int |
hashCode()
Determine a hash value for the ConditionalProcessor object according to
the general
Object.hashCode() contract. |
T |
process(InvocableMap.Entry<K,V> entry)
Process a Map.Entry object if it satisfies the underlying filter.
|
Map<K,T> |
processAll(Set<? extends InvocableMap.Entry<K,V>> setEntries)
Process a Set of InvocableMap.Entry objects.
|
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 ConditionalProcessor.
|
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.
|
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
protected InvocableMap.EntryProcessor<K,V,T> m_processor
public ConditionalProcessor()
public ConditionalProcessor(Filter<V> filter, InvocableMap.EntryProcessor<K,V,T> processor)
The specified entry processor gets invoked if and only if the filter
applied to the InvocableMap entry evaluates to true; otherwise the
result of the process(com.tangosol.util.InvocableMap.Entry<K, V>)
invocation will return null.
filter
- the filterprocessor
- the entry processorpublic T process(InvocableMap.Entry<K,V> entry)
Note: if this method throws an exception, all modifications to the supplied
entry or any other entries retrieved via the BackingMapContext.getBackingMapEntry(java.lang.Object)
API will be rolled back leaving all underlying values unchanged.
process
in interface InvocableMap.EntryProcessor<K,V,T>
entry
- the Entry to processpublic Map<K,T> processAll(Set<? extends InvocableMap.Entry<K,V>> setEntries)
Map mapResults = new ListMap(); for (Iterator iter = setEntries.iterator(); iter.hasNext(); ) { Entry entry = (Entry) iter.next(); if (InvocableMapHelper.evaluateEntry(filter, entry)) { mapResults.put(entry.getKey(), processor.process(entry)); } } return mapResults;
Note: if processAll() call throws an exception, only the entries that
were removed from the setEntries would be considered successfully
processed and the corresponding changes made to the underlying Map;
changes made to the remaining entries or any other entries obtained
from BackingMapContext.getBackingMapEntry(java.lang.Object)
will not be
processed.
processAll
in interface InvocableMap.EntryProcessor<K,V,T>
processAll
in class AbstractProcessor<K,V,T>
setEntries
- a Set of InvocableMap.Entry objects to processpublic boolean equals(Object o)
public int hashCode()
Object.hashCode()
contract.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