CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.util.processor
Class PropertyProcessor

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.util.processor.AbstractProcessor
          extended by com.tangosol.util.processor.PropertyProcessor
All Implemented Interfaces:
ExternalizableLite, PortableObject, InvocableMap.EntryProcessor, Serializable
Direct Known Subclasses:
NumberIncrementor, NumberMultiplier

public abstract class PropertyProcessor
extends AbstractProcessor
implements ExternalizableLite, PortableObject

PropertyProcessor is a base class for EntryProcessor implementations that depend on a PropertyManipulator.

Any concrete subclass would have to implement the methods of ExternalizableLite interface calling the appropriate super class implementations first.

A typical concrete subclass would also implement the process() method using the following pattern:

  public Object process(InvocableMap.Entry entry)
    {
    // retrieve an old property value
    Object oOldValue = get(entry);

    ... // calculate a new value and the process result
    ... // based on the old value and the processor's attributes

    if (!oNewValue.equals(oOldValue))
      {
      // set the new property value
      set(entry, oNewValue);
      }

    // return the process result
    return oResult;
    }
 

Author:
gg 2005.10.31

Field Summary
protected  ValueManipulator m_manipulator
          The property value manipulator.
 
Constructor Summary
PropertyProcessor()
          Default constructor (necessary for the ExternalizableLite interface).
PropertyProcessor(PropertyManipulator manipulator)
          Construct a PropertyProcessor based for the specified PropertyManipulator.
PropertyProcessor(String sName)
          Construct a PropertyProcessor for the specified property name.
PropertyProcessor(String sName, boolean fUseIs)
          Construct a PropertyProcessor for the specified property name.
 
Method Summary
 boolean equals(Object o)
          Compare the PropertyProcessor with another object to determine equality.
protected  Object get(InvocableMap.Entry entry)
          Get the property value from the passed Entry object.
protected abstract  String getDescription()
          Returns this PropertyProcessor's description.
 int hashCode()
          Determine a hash value for the PropertyProcessor object according to the general Object.hashCode() contract.
 void readExternal(DataInput in)
          Restore the contents of this object by loading the object's state from the passed DataInput object.
 void readExternal(PofReader in)
          Restore the contents of a user type instance by reading its state using the specified PofReader object.
protected  void set(InvocableMap.Entry entry, Object oValue)
          Set the property value into the passed Entry object.
 String toString()
          Return a human-readable description for this PropertyProcessor.
 void writeExternal(DataOutput out)
          Save the contents of this object by storing the object's state into the passed DataOutput object.
 void writeExternal(PofWriter out)
          Save the contents of a POF user type instance by writing its state using the specified PofWriter object.
 
Methods inherited from class com.tangosol.util.processor.AbstractProcessor
processAll
 
Methods inherited from interface com.tangosol.util.InvocableMap.EntryProcessor
process
 

Field Detail

m_manipulator

protected ValueManipulator m_manipulator
The property value manipulator.

Constructor Detail

PropertyProcessor

public PropertyProcessor()
Default constructor (necessary for the ExternalizableLite interface).


PropertyProcessor

public PropertyProcessor(String sName)
Construct a PropertyProcessor for the specified property name.

This constructor assumes that the corresponding property getter will have a name of ("get" + sName) and the corresponding property setter's name will be ("set + sName).

Parameters:
sName - a property name

PropertyProcessor

public PropertyProcessor(String sName,
                         boolean fUseIs)
Construct a PropertyProcessor for the specified property name.

This constructor assumes that the corresponding property getter will have a name of either ("get" + sName) or ("is + sName) and the corresponding property setter's name will be ("set + sName).

Parameters:
sName - a property name
fUseIs - if true, the getter method will be prefixed with "is" rather than "get"

PropertyProcessor

public PropertyProcessor(PropertyManipulator manipulator)
Construct a PropertyProcessor based for the specified PropertyManipulator.

Parameters:
manipulator - a PropertyManipulator; could be null
Method Detail

get

protected Object get(InvocableMap.Entry entry)
Get the property value from the passed Entry object.

Parameters:
entry - the Entry object
Returns:
the property value
See Also:
ValueExtractor.extract(java.lang.Object)

set

protected void set(InvocableMap.Entry entry,
                   Object oValue)
Set the property value into the passed Entry object.

Parameters:
entry - the Entry object
oValue - a new property value
See Also:
ValueUpdater.update(java.lang.Object, java.lang.Object)

getDescription

protected abstract String getDescription()
Returns this PropertyProcessor's description.

Returns:
this PropertyProcessor's description

equals

public boolean equals(Object o)
Compare the PropertyProcessor with another object to determine equality.

Returns:
true iff this PropertyProcessor and the passed object are equivalent PropertyProcessors

hashCode

public int hashCode()
Determine a hash value for the PropertyProcessor object according to the general Object.hashCode() contract.

Returns:
an integer hash value for this PropertyProcessor object

toString

public String toString()
Return a human-readable description for this PropertyProcessor.

Returns:
a String description of the PropertyProcessor

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

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation