Interface InvocableMap.EntryProcessor<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 Superinterfaces:
Serializable
All Known Implementing Classes:
AbstractAsynchronousProcessor, AbstractEvolvableProcessor, AbstractProcessor, AsynchronousProcessor, CompositeProcessor, ConditionalProcessor, ConditionalPut, ConditionalPutAll, ConditionalRemove, ContinuousQueryCache.ConverterAsynchronousProcessor, ExtractorProcessor, MethodInvocationProcessor, NullImplementation.NullEntryProcessor, NumberIncrementor, NumberMultiplier, PreloadRequest, PriorityProcessor, PropertyProcessor, ScriptProcessor, SingleEntryAsynchronousProcessor, StreamingAsynchronousProcessor, TouchProcessor, UpdaterProcessor, VersionedPut, VersionedPutAll
Enclosing interface:
InvocableMap<K,V>
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public static interface InvocableMap.EntryProcessor<K,V,R> extends Serializable
An invocable agent that operates against the Entry objects within a Map.
  • Method Details

    • process

      R process(InvocableMap.Entry<K,V> entry)
      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.

      Parameters:
      entry - the Entry to process
      Returns:
      the result of the processing, if any
    • processAll

      default 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.

      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