Class UpdaterProcessor<K,​V,​T>

  • All Implemented Interfaces:
    ExternalizableLite, PortableObject, InvocableMap.EntryProcessor<K,​V,​Boolean>, Serializable

    public class UpdaterProcessor<K,​V,​T>
    extends AbstractProcessor<K,​V,​Boolean>
    implements ExternalizableLite, PortableObject
    UpdaterProcessor is an EntryProcessor implementations that updates an attribute of an object cached in an InvocableMap. A common usage pattern is:
       cache.invoke(oKey, new UpdaterProcessor(updater, value));
     
    which is functionally equivalent to the following operation:
       V target = cache.get(key);
       updater.update(target, value);
       cache.put(key, target);
     
    The major difference is that for clustered caches using the UpdaterProcessor allows avoiding explicit concurrency control and could significantly reduce the amount of network traffic.
    Author:
    gg 2006.07.25
    See Also:
    Serialized Form
    • Field Detail

      • m_updater

        protected ValueUpdater<V,​T> m_updater
        The underlying ValueUpdater.
      • m_value

        protected T m_value
        A value to update the entry's value with.
    • Constructor Detail

      • UpdaterProcessor

        public UpdaterProcessor()
        Default constructor (necessary for the ExternalizableLite interface).
      • UpdaterProcessor

        public UpdaterProcessor​(ValueUpdater<V,​T> updater,
                                T value)
        Construct an UpdaterProcessor based on the specified ValueUpdater.
        Parameters:
        updater - a ValueUpdater object; passing null will simpy replace the entry's value with the specified one instead of updating it
        value - the value to update the target entry with
      • UpdaterProcessor

        public UpdaterProcessor​(String sMethod,
                                T value)
        Construct an UpdaterProcessor for a given method name. The method must have a single parameter of a Java type compatible with the specified value type.
        Parameters:
        sMethod - a method name to make a ReflectionUpdater for; this parameter can also be a dot-delimited sequence of method names which would result in using a CompositeUpdater
        value - the value to update the target entry with
    • Method Detail

      • equals

        public boolean equals​(Object o)
        Compare the UpdaterProcessor with another object to determine equality.
        Overrides:
        equals in class Object
        Returns:
        true iff this UpdaterProcessor and the passed object are equivalent UpdaterProcessor
      • hashCode

        public int hashCode()
        Determine a hash value for the UpdaterProcessor object according to the general Object.hashCode() contract.
        Overrides:
        hashCode in class Object
        Returns:
        an integer hash value for this UpdaterProcessor object
      • toString

        public String toString()
        Return a human-readable description for this UpdaterProcessor.
        Overrides:
        toString in class Object
        Returns:
        a String description of the UpdaterProcessor
      • readExternal

        public void readExternal​(DataInput in)
                          throws IOException
        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
        NotActiveException - if the object is not in its initial state, and therefore cannot be deserialized into
      • writeExternal

        public void writeExternal​(DataOutput out)
                           throws IOException
        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
        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
        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