|
Oracle® Coherence Java API Reference v3.5 E14977-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.processor.AbstractProcessor
com.tangosol.util.processor.ConditionalRemove
public class ConditionalRemove
ConditionalRemove is an EntryProcessor that performs an Entry.remove
operation if the specified condition is satisfied. <p/> While the ConditionalRemove processing could be implemented via direct key-based QueryMap operations, it is more efficient and enforces concurrency control without explicit locking. <p/> For example, the following operations are functionally similar, but the InvocableMap versions (a) perform significantly better for partitioned caches; (b) provide all necessary concurrency control (which is ommited from the QueryMap examples):
InvocableMap | QueryMap |
---|---|
cache.invoke(key, new ConditionalRemove(filter)); (*) | if (filter.evaluate(cache.get(key)) cache.remove(key); |
cache.invokeAll(setKeys, new ConditionalRemove(filter)); | for (Object key : setKeys) if (filter.evaluate(cache.get(key)) cache.remove(key); |
cache.invokeAll(filter1, new ConditionalRemove(filter2); | for (Object key : cache.setKeys(filter1)) if (filter2.evaluate(cache.get(key)) cache.remove(key); |
cache.invokeAll(filter, new ConditionalRemove(AlwaysFilter.INSTANCE)); | Set setKeys = cache.keySet(filter); cache.keySet().removeAll(setKeys); |
(*) If the filter is assigned as the following: filter = new EqualsFilter(IdentityExtractor.INSTANCE, oValue);
this operation also becomes functionally equivalent to the remove method of the ConcurrentMap interface (available with JDK 1.5).
Field Summary | |
---|---|
protected Filter |
m_filter The underlying filter. |
protected boolean |
m_fReturn Specifies whether or not a return value is required. |
Constructor Summary | |
---|---|
ConditionalRemove() Default constructor (necessary for the ExternalizableLite interface). |
|
ConditionalRemove(Filter filter) Construct a ConditionalRemove processor that removes an InvocableMap entry if and only if the filter applied to the entry evaluates to true. |
|
ConditionalRemove(Filter filter, boolean fReturn) Construct a ConditionalRemove processor that removes an InvocableMap entry if and only if the filter applied to the entry evaluates to true. |
Method Summary | |
---|---|
boolean |
equals(java.lang.Object o) Compare the ConditionalRemove with another object to determine equality. |
int |
hashCode() Determine a hash value for the ConditionalRemove object according to the general Object.hashCode() contract. |
java.lang.Object |
process(InvocableMap.Entry entry) Process a Map.Entry object. |
java.util.Map |
processAll(java.util.Set setEntries) Process a Set of InvocableMap.Entry objects. This method is semantically equivalent to: Map mapResults = new ListMap(); for (Iterator iter = setEntries.iterator(); iter.hasNext(); ) { Entry entry = (Entry) iter.next(); mapResults.put(entry.getKey(), process(entry)); } return mapResults; |
void |
readExternal(java.io.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. |
java.lang.String |
toString() Return a human-readable description for this ConditionalRemove. |
void |
writeExternal(java.io.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. |
Field Detail |
---|
protected Filter m_filter
protected boolean m_fReturn
Constructor Detail |
---|
public ConditionalRemove()
public ConditionalRemove(Filter filter)
process(com.tangosol.util.InvocableMap.Entry)
invocation does not return any result.
filter
- the filter to evaluate an entrypublic ConditionalRemove(Filter filter, boolean fReturn)
filter
- the filter to evaluate an entryfReturn
- specifies whether or not the processor should return the current value if it has not been removedMethod Detail |
---|
public java.lang.Object process(InvocableMap.Entry entry)
process
in interface InvocableMap.EntryProcessor
entry
- the Entry to processpublic java.util.Map processAll(java.util.Set setEntries)
Map mapResults = new ListMap(); for (Iterator iter = setEntries.iterator(); iter.hasNext(); ) { Entry entry = (Entry) iter.next(); mapResults.put(entry.getKey(), process(entry)); } return mapResults;
processAll
in interface InvocableMap.EntryProcessor
processAll
in class AbstractProcessor
setEntries
- a read-only Set of InvocableMap.Entry objects to processpublic boolean equals(java.lang.Object o)
public int hashCode()
Object.hashCode()
contract.public java.lang.String toString()
public void readExternal(java.io.DataInput in) throws java.io.IOException
readExternal
in interface ExternalizableLite
in
- the DataInput stream to read data from in order to restore the state of this objectjava.io.IOException
- if an I/O exception occursjava.io.NotActiveException
- if the object is not in its initial state, and therefore cannot be deserialized intopublic void writeExternal(java.io.DataOutput out) throws java.io.IOException
writeExternal
in interface ExternalizableLite
out
- the DataOutput stream to write the state of this object tojava.io.IOException
- if an I/O exception occurspublic void readExternal(PofReader in) throws java.io.IOException
readExternal
in interface PortableObject
in
- the PofReader from which to read the object's statejava.io.IOException
- if an I/O error occurspublic void writeExternal(PofWriter out) throws java.io.IOException
writeExternal
in interface PortableObject
out
- the PofWriter to which to write the object's statejava.io.IOException
- if an I/O error occurs
|
Oracle® Coherence Java API Reference v3.5 E14977-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |