Class MethodInvocationProcessor<K,V,R>

java.lang.Object
com.tangosol.util.processor.MethodInvocationProcessor<K,V,R>
All Implemented Interfaces:
ExternalizableLite, PortableObject, InvocableMap.EntryProcessor<K,V,R>, Serializable

public class MethodInvocationProcessor<K,V,R> extends Object implements InvocableMap.EntryProcessor<K,V,R>, ExternalizableLite, PortableObject
An entry processor that invokes specified method on a value of a cache entry and optionally updates the entry with a modified value.
Since:
12.2.1
Author:
as 2014.11.19
See Also:
  • Field Details

    • m_sMethodName

      protected String m_sMethodName
      The name of the method to invoke.
    • m_fMutator

      protected boolean m_fMutator
      A flag specifying whether the method mutates the state of a target object.
    • m_supplier

      protected Remote.Supplier<V> m_supplier
      The supplier that should be used to create the entry value if this processor is invoked on an entry that is not present in the cache.
    • m_aoArgs

      protected Object[] m_aoArgs
      Method arguments.
  • Constructor Details

    • MethodInvocationProcessor

      public MethodInvocationProcessor()
      Deserialization constructor.
    • MethodInvocationProcessor

      public MethodInvocationProcessor(String sMethodName, boolean fMutator, Object... aoArgs)
      Construct MethodInvocationProcessor instance.
      Parameters:
      sMethodName - the name of the method to invoke
      fMutator - a flag specifying whether the method mutates the state of a target object, which implies that the entry value should be updated after method invocation
      aoArgs - method arguments
    • MethodInvocationProcessor

      public MethodInvocationProcessor(Remote.Supplier<V> supplier, String sMethodName, boolean fMutator, Object... aoArgs)
      Construct MethodInvocationProcessor instance.
      Parameters:
      supplier - the supplier that should be used to create the entry value if this processor is invoked on an entry that is not present in the cache
      sMethodName - the name of the method to invoke
      fMutator - the flag specifying whether the method mutates the state of a target object, which implies that the entry value should be updated after method invocation
      aoArgs - the method arguments
  • 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
    • readExternal

      public void readExternal(DataInput in) throws IOException
      Description copied from interface: ExternalizableLite
      Restore the contents of this object by loading the object's state from the passed DataInput object.
      Specified by:
      readExternal in interface ExternalizableLite
      Parameters:
      in - the DataInput stream to read data from in order to restore the state of this object
      Throws:
      IOException - if an I/O exception occurs
    • writeExternal

      public void writeExternal(DataOutput out) throws IOException
      Description copied from interface: ExternalizableLite
      Save the contents of this object by storing the object's state into the passed DataOutput object.
      Specified by:
      writeExternal in interface ExternalizableLite
      Parameters:
      out - the DataOutput stream to write the state of this object to
      Throws:
      IOException - if an I/O exception occurs
    • readExternal

      public void readExternal(PofReader in) throws IOException
      Description copied from interface: PortableObject
      Restore the contents of a user type instance by reading its state using the specified PofReader object.
      Specified by:
      readExternal in interface PortableObject
      Parameters:
      in - the PofReader from which to read the object's state
      Throws:
      IOException - if an I/O error occurs
    • writeExternal

      public void writeExternal(PofWriter out) throws IOException
      Description copied from interface: PortableObject
      Save the contents of a POF user type instance by writing its state using the specified PofWriter object.
      Specified by:
      writeExternal in interface PortableObject
      Parameters:
      out - the PofWriter to which to write the object's state
      Throws:
      IOException - if an I/O error occurs
    • getMethodName

      public String getMethodName()
      Returns the name of the method to invoke.
      Returns:
      the name of the method to invoke
    • isMutator

      public boolean isMutator()
      Returns a boolean specifying whether the method mutates the state of a target object.
      Returns:
      a boolean specifying whether the method mutates the state of a target object
    • getSupplier

      public Remote.Supplier<V> getSupplier()
      Returns the supplier that should be used when an entry is not present.
      Returns:
      the supplier that should be used when an entry is not present
    • getArgs

      public Object[] getArgs()
      Return the method arguments.
      Returns:
      the method arguments