org.exolab.castor.mapping
public abstract class AbstractFieldHandler extends ExtendedFieldHandler
Version: $Revision: 1.5 $ $Date: 2005/08/03 21:11:49 $
See Also: FieldDescriptor FieldHandler
Constructor Summary | |
---|---|
protected | 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.
|
boolean | hasValue(Object object)
Returns true if the "handled" field has a value within the
given 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.
|
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.
|
Returns: the FieldDescriptor, or null if none exists.
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
By default this just checks for null. Normally this method is needed for checking if a value has been set via a call to the setValue method, or if the primitive value has been initialized by the JVM.
This method should be overloaded for improved value checking.
Returns: true if the given object has a value for the handled 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
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
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
Parameters: fieldDesc the FieldDescriptor to set
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