Package com.tangosol.util.processor
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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected Object[]
m_aoArgs
Method arguments.protected boolean
m_fMutator
A flag specifying whether the method mutates the state of a target object.protected String
m_sMethodName
The name of the method to invoke.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.
-
Constructor Summary
Constructors Constructor Description MethodInvocationProcessor()
Deserialization constructor.MethodInvocationProcessor(Remote.Supplier<V> supplier, String sMethodName, boolean fMutator, Object... aoArgs)
Construct MethodInvocationProcessor instance.MethodInvocationProcessor(String sMethodName, boolean fMutator, Object... aoArgs)
Construct MethodInvocationProcessor instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object[]
getArgs()
Return the method arguments.String
getMethodName()
Returns the name of the method to invoke.Remote.Supplier<V>
getSupplier()
Returns the supplier that should be used when an entry is not present.boolean
isMutator()
Returns a boolean specifying whether the method mutates the state of a target object.R
process(InvocableMap.Entry<K,V> entry)
Process a Map.Entry object.void
readExternal(PofReader in)
Restore the contents of a user type instance by reading its state using the specified PofReader object.void
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from the passed DataInput object.void
writeExternal(PofWriter out)
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.void
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into the passed DataOutput object.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.tangosol.util.InvocableMap.EntryProcessor
processAll
-
-
-
-
Field Detail
-
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 Detail
-
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 invokefMutator
- a flag specifying whether the method mutates the state of a target object, which implies that the entry value should be updated after method invocationaoArgs
- 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 cachesMethodName
- the name of the method to invokefMutator
- the flag specifying whether the method mutates the state of a target object, which implies that the entry value should be updated after method invocationaoArgs
- the method arguments
-
-
Method Detail
-
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 interfaceInvocableMap.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 interfaceExternalizableLite
- 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 occursNotActiveException
- if the object is not in its initial state, and therefore cannot be deserialized into
-
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 interfaceExternalizableLite
- 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 interfacePortableObject
- 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 interfacePortableObject
- 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
-
-