Class AbstractEvolvableProcessor<K,V,R>

java.lang.Object
com.tangosol.io.AbstractEvolvable
com.tangosol.util.processor.AbstractEvolvableProcessor<K,V,R>
Type Parameters:
K - the type of the Map entry key
V - the type of the Map entry value
R - the type of value returned by the EntryProcessor
All Implemented Interfaces:
Evolvable, EvolvablePortableObject, PortableObject, InvocableMap.EntryProcessor<K,V,R>, Serializable

public abstract class AbstractEvolvableProcessor<K,V,R> extends AbstractEvolvable implements InvocableMap.EntryProcessor<K,V,R>, EvolvablePortableObject
An Evolvable AbstractProcessor that is a partial EntryProcessor implementation that provides the default implementation of the processAll(java.util.Set<? extends com.tangosol.util.InvocableMap.Entry<K, V>>) method.
Since:
Coherence 14.1.1
Author:
jf 2019.11.21
See Also:
  • Constructor Details

    • AbstractEvolvableProcessor

      public AbstractEvolvableProcessor()
  • Method Details

    • process

      public R process(InvocableMap.Entry<K,V> entry)
      Description copied from interface: InvocableMap.EntryProcessor
      Process a Map.Entry object.

      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.

      Specified by:
      process in interface InvocableMap.EntryProcessor<K,V,R>
      Parameters:
      entry - the Entry to process
      Returns:
      the result of the processing, if any
    • processAll

      public Map<K,R> processAll(Set<? extends InvocableMap.Entry<K,V>> 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;
       

      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.

      Specified by:
      processAll in interface InvocableMap.EntryProcessor<K,V,R>
      Parameters:
      setEntries - a Set of InvocableMap.Entry objects to process
      Returns:
      a Map containing the results of the processing, up to one entry for each InvocableMap.Entry that was processed, keyed by the keys of the Map that were processed, with a corresponding value being the result of the processing for each key