Class CompositeUpdater

java.lang.Object
com.tangosol.util.Base
com.tangosol.util.extractor.CompositeUpdater
All Implemented Interfaces:
ExternalizableLite, PortableObject, ValueManipulator, ValueUpdater, Serializable

public class CompositeUpdater extends Base implements ValueUpdater, ValueManipulator, ExternalizableLite, PortableObject
A ValueUpdater implementation based on an extractor-updater pair that could also be used as a ValueManipulator.
Author:
gg 2005.10.31
See Also:
  • Field Details

    • m_extractor

      protected ValueExtractor m_extractor
      The ValueExtractor part.
    • m_updater

      protected ValueUpdater m_updater
      The ValueUpdater part.
  • Constructor Details

    • CompositeUpdater

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

      public CompositeUpdater(ValueExtractor extractor, ValueUpdater updater)
      Construct a CompositeUpdater based on the specified extractor and updater.

      Note: the extractor and updater here are not symmetrical in nature: the extractor is used to "drill-down" to the target object, while the updater will operate on that extracted object.

      Parameters:
      extractor - the ValueExtractor
      updater - the ValueUpdater
    • CompositeUpdater

      public CompositeUpdater(String sName)
      Construct a CompositeUpdater for a specified method name sequence.

      For example: "getAddress.setZip" method name will indicate that the "getAddress()" method should be used to extract an Address object, which will then be used by the "setZip(String)" call.

      Parameters:
      sName - a dot-delimited sequence of N method names which results in a CompositeUpdater that is based on an chain of (N-1) UniversalExtractor objects and a single UniversalUpdater.
  • Method Details

    • update

      public void update(Object oTarget, Object oValue)
      Update the state of the passed target object using the passed value. For intrinsic types, the specified value is expected to be a standard wrapper type in the same manner that reflection works; for example, an int value would be passed as a java.lang.Integer.
      Specified by:
      update in interface ValueUpdater
      Parameters:
      oTarget - the Object to update the state of
      oValue - the new value to update the state with
    • getExtractor

      public ValueExtractor getExtractor()
      Retrieve the ValueExtractor part.
      Specified by:
      getExtractor in interface ValueManipulator
      Returns:
      the ValueExtractor
    • getUpdater

      public ValueUpdater getUpdater()
      Retrieve the ValueUpdater part.
      Specified by:
      getUpdater in interface ValueManipulator
      Returns:
      the ValueUpdater
    • toString

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

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • 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
    • 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