org.exolab.castor.mapping
Class AbstractFieldHandler

java.lang.Object
  extended byorg.exolab.castor.mapping.loader.FieldHandlerFriend
      extended byorg.exolab.castor.mapping.ExtendedFieldHandler
          extended byorg.exolab.castor.mapping.AbstractFieldHandler
All Implemented Interfaces:
FieldHandler
Direct Known Subclasses:
GeneralizedFieldHandler, XMLFieldHandler

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.4 $ $Date: 2003/09/23 20:44:50 $
Author:
Keith Visco
See Also:
FieldDescriptor, FieldHandler

Method Summary
abstract  java.lang.Object getValue(java.lang.Object object)
          Returns the value of the field from the object.
 boolean hasValue(java.lang.Object object)
          Returns true if the "handled" field has a value within the given object.
abstract  java.lang.Object newInstance(java.lang.Object parent)
          Creates a new instance of the object described by this field.
abstract  java.lang.Object newInstance(java.lang.Object parent, java.lang.Object[] args)
          Creates a new instance of the object described by this field.
abstract  void resetValue(java.lang.Object object)
          Sets the value of the field to a default value.
abstract  void setValue(java.lang.Object object, java.lang.Object value)
          Sets the value of the field on the object.
 
Methods inherited from class org.exolab.castor.mapping.ExtendedFieldHandler
checkValidity
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

hasValue

public boolean hasValue(java.lang.Object object)
Returns true if the "handled" field has a value within the given 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

getValue

public abstract java.lang.Object getValue(java.lang.Object object)
                                   throws java.lang.IllegalStateException
Returns the value of the field from the object.

Specified by:
getValue in interface FieldHandler
Specified by:
getValue in class ExtendedFieldHandler
Parameters:
object - The object
Returns:
The value of the field
Throws:
java.lang.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 java.lang.Object newInstance(java.lang.Object parent)
                                      throws java.lang.IllegalStateException
Creates a new instance of the object described by this field.

Specified by:
newInstance in interface FieldHandler
Specified by:
newInstance in class ExtendedFieldHandler
Parameters:
parent - The object for which the field is created
Returns:
A new instance of the field's value
Throws:
java.lang.IllegalStateException - This field is a simple type and cannot be instantiated

newInstance

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

Specified by:
newInstance in class 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
Throws:
java.lang.IllegalStateException - This field is a simple type and cannot be instantiated

resetValue

public abstract void resetValue(java.lang.Object object)
                         throws java.lang.IllegalStateException,
                                java.lang.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
Specified by:
resetValue in class ExtendedFieldHandler
Parameters:
object - The object
Throws:
java.lang.IllegalStateException - The Java object has changed and is no longer supported by this handler, or the handler is not compatiable with the Java object
java.lang.IllegalArgumentException

setValue

public abstract void setValue(java.lang.Object object,
                              java.lang.Object value)
                       throws java.lang.IllegalStateException,
                              java.lang.IllegalArgumentException
Sets the value of the field on the object.

Specified by:
setValue in interface FieldHandler
Specified by:
setValue in class ExtendedFieldHandler
Parameters:
object - The object
value - The new value
Throws:
java.lang.IllegalStateException - The Java object has changed and is no longer supported by this handler, or the handler is not compatiable with the Java object
java.lang.IllegalArgumentException


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