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

@Executable public final 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(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