org.exolab.castor.mapping

Class AbstractFieldHandler

Implemented Interfaces:
FieldHandler
Known Direct Subclasses:
FieldHandlerImpl, GeneralizedFieldHandler

public abstract class AbstractFieldHandler
extends ExtendedFieldHandler

An extended version of the FieldHandler interface which is used for adding additional functionality while preserving backward compatability.
Version:
$Revision: 1.3 $ $Date: 2003/04/16 07:16:19 $
Author:
Keith Visco
See Also:
FieldDescriptor, FieldHandler

Constructor Summary

AbstractFieldHandler()
Creates a new default AbstractFieldHandler.

Method Summary

protected FieldDescriptor
getFieldDescriptor()
Returns the FieldDescriptor for the field that this handler is reponsibile for, or null if no FieldDescriptor has been set.
abstract Object
getValue(Object object)
Returns the value of the field from the object.
abstract Object
newInstance(Object parent)
Creates a new instance of the object described by this field.
abstract Object
newInstance(Object parent, Object[] args)
Creates a new instance of the object described by this field.
abstract void
resetValue(Object object)
Sets the value of the field to a default value.
protected void
setFieldDescriptor(FieldDescriptor fieldDesc)
Sets the FieldDescriptor that this FieldHander is responsibile for.
abstract void
setValue(Object object, Object value)
Sets the value of the field on the object.

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

AbstractFieldHandler

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

Method Details

getFieldDescriptor

protected final FieldDescriptor getFieldDescriptor()
Returns the FieldDescriptor for the field that this handler is reponsibile for, or null if no FieldDescriptor has been set. This method is useful for implementations of the FieldHandler interface that wish to obtain information about the field in order to make the FieldHandler more generic and reusable, or simply for validation purposes.
Overrides:
getFieldDescriptor in interface ExtendedFieldHandler
Returns:
the FieldDescriptor, or null if none exists.

getValue

public abstract 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 ExtendedFieldHandler
Parameters:
object - The object
Returns:
The value of the field

newInstance

public abstract 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 ExtendedFieldHandler
Parameters:
parent - The object for which the field is created
Returns:
A new instance of the field's value

newInstance

public abstract Object newInstance(Object parent,
                                   Object[] args)
            throws IllegalStateException
Creates a new instance of the object described by this field.
Overrides:
newInstance in interface ExtendedFieldHandler
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 abstract 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 ExtendedFieldHandler
Parameters:
object - The object

setFieldDescriptor

protected final void setFieldDescriptor(FieldDescriptor fieldDesc)
Sets the FieldDescriptor that this FieldHander is responsibile for. By setting the FieldDescriptor, it allows the implementation of the FieldHandler methods to obtain information about the field itself. This allows a particular implementation to become more generic and reusable.
Overrides:
setFieldDescriptor in interface ExtendedFieldHandler
Parameters:
fieldDesc - the FieldDescriptor to set

setValue

public abstract 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 ExtendedFieldHandler
Parameters:
object - The object
value - The new value

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