org.exolab.castor.mapping

Class GeneralizedFieldHandler

Implemented Interfaces:
FieldHandler

public abstract class GeneralizedFieldHandler
extends AbstractFieldHandler

An extended version of the FieldHandler interface which is used for making generic libraries of FieldHandlers which can be used for more than one field or class, but have similar conversion algorithms.

Version:
$Revision: 1.2 $ $Date: 2003/04/16 07:15:57 $

Author:
Keith Visco

See Also:
FieldDescriptor, FieldHandler

Constructor Summary

GeneralizedFieldHandler()
Creates a new default GeneralizedFieldHandler.

Method Summary

Object
convertUponGet(Object value)
This method is used to convert the value when the getValue method is called.
Object
convertUponSet(Object value)
This method is used to convert the value when the setValue method is called.
Class
getFieldType()
Returns the class type for the field that this GeneralizedFieldHandler converts to and from.
Object
getValue(Object object)
Returns the value of the field from the object.
Object
newInstance(Object parent)
Creates a new instance of the object described by this field.
Object
newInstance(Object parent, Object[] args)
Creates a new instance of the object described by this field.
void
resetValue(Object object)
Sets the value of the field to a default value.
void
setFieldHandler(FieldHandler handler)
Sets the FieldHandler that this FieldHander delegates to.
void
setValue(Object object, Object value)
Sets the value of the field on the object.

Methods inherited from class org.exolab.castor.mapping.AbstractFieldHandler

getFieldDescriptor, getValue, newInstance, newInstance, resetValue, setFieldDescriptor, setValue

Methods inherited from class org.exolab.castor.mapping.ExtendedFieldHandler

checkValidity, getFieldDescriptor, getValue, newInstance, newInstance, resetValue, setFieldDescriptor, setValue

Methods inherited from class org.exolab.castor.mapping.loader.FieldHandlerFriend

checkValidity, getFieldDescriptor, getValue, newInstance, resetValue, setFieldDescriptor, setValue

Constructor Details

GeneralizedFieldHandler

protected GeneralizedFieldHandler()
Creates a new default GeneralizedFieldHandler. This method should be called by all extending classes so that any important initialization code will be executed.

Method Details

convertUponGet

public Object convertUponGet(Object value)
This method is used to convert the value when the getValue method is called. The getValue method will obtain the actual field value from given 'parent' object. This convert method is then invoked with the field's value. The value returned from this method will be the actual value returned by getValue method.

Parameters:
value - the object value to convert after performing a get operation

Returns:
the converted value.


convertUponSet

public Object convertUponSet(Object value)
This method is used to convert the value when the setValue method is called. The setValue method will call this method to obtain the converted value. The converted value will then be used as the value to set for the field.

Parameters:
value - the object value to convert before performing a set operation

Returns:
the converted value.


getFieldType

public Class getFieldType()
Returns the class type for the field that this GeneralizedFieldHandler converts to and from. This should be the type that is used in the object model.

Returns:
the class type of of the field


getValue

public final Object getValue(Object object)
            throws IllegalStateException
Returns the value of the field from the object.
Specified by:
getValue in interface FieldHandler
Overrides:
getValue in interface AbstractFieldHandler

Parameters:
object - The object

Returns:
The value of the field


newInstance

public Object newInstance(Object parent)
            throws IllegalStateException
Creates a new instance of the object described by this field.
Specified by:
newInstance in interface FieldHandler
Overrides:
newInstance in interface AbstractFieldHandler

Parameters:
parent - The object for which the field is created

Returns:
A new instance of the field's value


newInstance

public Object newInstance(Object parent,
                          Object[] args)
            throws IllegalStateException
Creates a new instance of the object described by this field.
Overrides:
newInstance in interface AbstractFieldHandler

Parameters:
parent - The object for which the field is created
args - the set of constructor arguments

Returns:
A new instance of the field's value


resetValue

public final void resetValue(Object object)
            throws IllegalStateException,
                   IllegalArgumentException
Sets the value of the field to a default value.

Reference fields are set to null, primitive fields are set to their default value, collection fields are emptied of all elements.

Specified by:
resetValue in interface FieldHandler
Overrides:
resetValue in interface AbstractFieldHandler

Parameters:
object - The object


setFieldHandler

public final void setFieldHandler(FieldHandler handler)
Sets the FieldHandler that this FieldHander delegates to. A call to this method must be made with a non-null FieldHandler before this GeneralizedFieldHandler can be used.

Parameters:
handler - the FieldHandler to delegate to


setValue

public final void setValue(Object object,
                           Object value)
            throws IllegalStateException,
                   IllegalArgumentException
Sets the value of the field on the object.
Specified by:
setValue in interface FieldHandler
Overrides:
setValue in interface AbstractFieldHandler

Parameters:
object - The object
value - The new value


Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com