org.exolab.castor.xml.handlers

Class ContainerFieldHandler

Implemented Interfaces:
FieldHandler

public final class ContainerFieldHandler
extends java.lang.Object
implements FieldHandler

The FieldHandler for ContainerElement.
Version:
$Revision: 6784 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
Author:
Keith Visco
See Also:
org.exolab.castor.mapping.FieldDescriptor, org.exolab.castor.mapping.FieldHandler

Field Summary

static int
MODE_AUTO
Automatically choose the mode to use.
static int
MODE_CHILD_LINK
The mode for a ContainerElement.
static int
MODE_PARENT_LINK
When the field is not a ContainerElement, this mode is used.

Constructor Summary

ContainerFieldHandler(FieldHandler handler)
Creates a new ContainerFieldHandler with the given FieldHandler.

Method Summary

void
checkValidity(Object object)
Checks the field validity.
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.
void
resetValue(Object object)
Sets the value of the field to a default value.
void
setValue(Object object, Object value)
Sets the value of the field on the object.

Field Details

MODE_AUTO

public static final int MODE_AUTO
Automatically choose the mode to use.
Field Value:
0

MODE_CHILD_LINK

public static final int MODE_CHILD_LINK
The mode for a ContainerElement. getValue and setValue operate on the parent.
Field Value:
2

MODE_PARENT_LINK

public static final int MODE_PARENT_LINK
When the field is not a ContainerElement, this mode is used.
Field Value:
1

Constructor Details

ContainerFieldHandler

public ContainerFieldHandler(FieldHandler handler)
Creates a new ContainerFieldHandler with the given FieldHandler.
Parameters:
handler - The field handler to delegate to.

Method Details

checkValidity

public void checkValidity(Object object)
            throws ValidityException,
                   IllegalStateException
Checks the field validity. Returns successfully if the field can be stored, is valid, etc, throws an exception otherwise.
Specified by:
checkValidity in interface FieldHandler
Parameters:
object - The object
Throws:
ValidityException - The field is invalid, is required and null, or any other validity violation

getValue

public Object getValue(Object object)
            throws IllegalStateException
Returns the value of the field from the object. If mode is MODE_CHILD_LINK or mode is MODE_AUTO and the object is a ContainerElement, then the value of the parent is returned. Otherwise, a new ContainerElement is returned. The value of this new ContainerElement is the value of the provided object and the parent of the new ContainerElement is the provided object.
Specified by:
getValue in interface FieldHandler
Parameters:
object - The object to get the value of
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. Of the object provided is a ContainerElement, then a new isntance of the parent object is returned. Otherwise a new ContainerElement is created and returned, with the parent set to the provided object.
Specified by:
newInstance in interface FieldHandler
Parameters:
parent - The object for which the field is created
Returns:
A new instance of the field's value

resetValue

public void resetValue(Object object)
            throws IllegalStateException
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
Parameters:
object - The object

setValue

public void setValue(Object object,
                     Object value)
            throws IllegalStateException,
                   IllegalArgumentException
Sets the value of the field on the object. That is, sets the value of the container parent to the provided value.
Specified by:
setValue in interface FieldHandler
Parameters:
object - The object whose value to set.
value - The new value

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