org.exolab.castor.mapping

Class AbstractFieldHandler

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
protected AbstractFieldHandler()
Creates a new default AbstractFieldHandler.
Method Summary
protected FieldDescriptorgetFieldDescriptor()
Returns the FieldDescriptor for the field that this handler is reponsibile for, or null if no FieldDescriptor has been set.
abstract ObjectgetValue(Object object)
Returns the value of the field from the object.
abstract ObjectnewInstance(Object parent)
Creates a new instance of the object described by this field.
abstract ObjectnewInstance(Object parent, Object[] args)
Creates a new instance of the object described by this field.
abstract voidresetValue(Object object)
Sets the value of the field to a default value.
protected voidsetFieldDescriptor(FieldDescriptor fieldDesc)
Sets the FieldDescriptor that this FieldHander is responsibile for.
abstract voidsetValue(Object object, Object value)
Sets the value of the field on the object.

Constructor Detail

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 Detail

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.

Returns: the FieldDescriptor, or null if none exists.

getValue

public abstract Object getValue(Object object)
Returns the value of the field from the object.

Parameters: object The object

Returns: The value of the field

Throws: IllegalStateException The Java object has changed and is no longer supported by this handler, or the handler is not compatiable with the Java object

newInstance

public abstract Object newInstance(Object parent)
Creates a new instance of the object described by this field.

Parameters: parent The object for which the field is created

Returns: A new instance of the field's value

Throws: IllegalStateException This field is a simple type and cannot be instantiated

newInstance

public abstract Object newInstance(Object parent, Object[] args)
Creates a new instance of the object described by this field.

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

Throws: IllegalStateException This field is a simple type and cannot be instantiated

resetValue

public abstract void resetValue(Object object)
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.

Parameters: object The object

Throws: IllegalStateException The Java object has changed and is no longer supported by this handler, or the handler is not compatiable with the Java 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.

Parameters: fieldDesc the FieldDescriptor to set

setValue

public abstract void setValue(Object object, Object value)
Sets the value of the field on the object.

Parameters: object The object value The new value

Throws: IllegalStateException The Java object has changed and is no longer supported by this handler, or the handler is not compatiable with the Java object

UNKNOWN: IllegalArgumentException The value passed is not of a supported type

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