|
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_filterThe underlying filter. |
protected boolean |
m_fReturnSpecifies 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 entry
public 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 removed| Method Detail |
|---|
public java.lang.Object process(InvocableMap.Entry entry)
process in interface InvocableMap.EntryProcessorentry - 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.EntryProcessorprocessAll in class AbstractProcessorsetEntries - 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 ExternalizableLitein - 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 into
public void writeExternal(java.io.DataOutput out)
throws java.io.IOException
writeExternal in interface ExternalizableLiteout - the DataOutput stream to write the state of this object tojava.io.IOException - if an I/O exception occurs
public void readExternal(PofReader in)
throws java.io.IOException
readExternal in interface PortableObjectin - the PofReader from which to read the object's statejava.io.IOException - if an I/O error occurs
public void writeExternal(PofWriter out)
throws java.io.IOException
writeExternal in interface PortableObjectout - 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 | |||||||