org.exolab.castor.mapping.loader

Class FieldHandlerImpl

public final class FieldHandlerImpl extends AbstractFieldHandler

A field handler that knows how to get/set the values of a field directly or through the get/set methods. Uses reflection.

Note: the field Java type is obtained from getFieldType, but if the field is a collection, the actual field/accessor type is obtained from TypeInfo and the object to create (with newInstance) is the former field type.

Version: $Revision: 1.7 $ $Date: 2005/05/22 14:22:58 $

Author: Assaf Arkin

Constructor Summary
FieldHandlerImpl(FieldHandler handler, TypeInfo typeInfo)
Construct a new field handler for the specified field.
FieldHandlerImpl(Field field, TypeInfo typeInfo)
Construct a new field handler for the specified field.
FieldHandlerImpl(String fieldName, Method[] getSequence, Method[] setSequence, Method getMethod, Method setMethod, TypeInfo typeInfo)
Construct a new field handler for the specified field that is accessed through the accessor methods (get/set).
Method Summary
TypeConvertorgetConvertFrom()
StringgetConvertParam()
TypeConvertorgetConvertTo()
ObjectgetValue(Object object)
booleanisCollection()
Return true if the field is a collection.
ObjectnewInstance(Object parent)
Creates a new instance of the object described by this field.
ObjectnewInstance(Object parent, Object[] args)
Creates a new instance of the object described by this field.
voidresetValue(Object object)
voidsetAddMethod(Method method)
Mutator method used by Introspector.
voidsetConvertFrom(TypeConvertor convertor)
Sets the TypeConvertor used during calls to getValue
voidsetConvertTo(TypeConvertor convertor)
Sets the TypeConvertor used during calls to setValue
voidsetCreateMethod(Method method)
Mutator method used by MappingLoader and Introspector.
voidsetHasDeleteMethod(Method hasMethod, Method deleteMethod)
Mutator method used by MappingLoader and Introspector.
voidsetReadMethod(Method method)
Mutator method used by Introspector.
voidsetRequired(boolean required)
Mutator method used by MappingLoader.
voidsetValue(Object object, Object value)
voidsetWriteMethod(Method method)
Mutator method used by Introspector.
StringtoString()

Constructor Detail

FieldHandlerImpl

public FieldHandlerImpl(FieldHandler handler, TypeInfo typeInfo)
Construct a new field handler for the specified field. The field must be public, and may not be static or transient. The field name is determined from the Java field, the type from the type information.

Parameters: handler typeInfo Type information

Throws: MappingException If the field is not public, is static or transient

FieldHandlerImpl

public FieldHandlerImpl(Field field, TypeInfo typeInfo)
Construct a new field handler for the specified field. The field must be public, and may not be static or transient. The field name is determined from the Java field, the type from the type information.

Parameters: field The field being described typeInfo Type information

Throws: MappingException If the field is not public, is static or transient

FieldHandlerImpl

public FieldHandlerImpl(String fieldName, Method[] getSequence, Method[] setSequence, Method getMethod, Method setMethod, TypeInfo typeInfo)
Construct a new field handler for the specified field that is accessed through the accessor methods (get/set). The accessor methods must be public and not static. The field name is required for descriptive purposes. The field type must match the return value of the get method and the single parameter of the set method. Either get or set methods are optional.

Parameters: fieldName The field being described getMethod The method used to retrieve the field value, must accept no parameters and have a return type castable to the field type setMethod The method used to set the field value, must accept a single parameter that is castable to the field type typeInfo Type information

Throws: MappingException If the get or set method are not public, are static, or do not specify the proper types

Method Detail

getConvertFrom

public TypeConvertor getConvertFrom()

getConvertParam

public String getConvertParam()

getConvertTo

public TypeConvertor getConvertTo()

getValue

public Object getValue(Object object)

isCollection

public boolean isCollection()
Return true if the field is a collection.

newInstance

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

setAddMethod

public void setAddMethod(Method method)
Mutator method used by Introspector. Please understand how this method is used before you start playing with it! :-)

setConvertFrom

public void setConvertFrom(TypeConvertor convertor)
Sets the TypeConvertor used during calls to getValue

Parameters: convertor the TypeConvertor to use during calls to getValue

setConvertTo

public void setConvertTo(TypeConvertor convertor)
Sets the TypeConvertor used during calls to setValue

Parameters: convertor the TypeConvertor to use during calls to setValue

setCreateMethod

public void setCreateMethod(Method method)
Mutator method used by MappingLoader and Introspector. Please understand how this method is used before you start playing with it! :-)

setHasDeleteMethod

public void setHasDeleteMethod(Method hasMethod, Method deleteMethod)
Mutator method used by MappingLoader and Introspector. Please understand how this method is used before you start playing with it! :-)

setReadMethod

public void setReadMethod(Method method)
Mutator method used by Introspector. Please understand how this method is used before you start playing with it! :-)

setRequired

void setRequired(boolean required)
Mutator method used by MappingLoader.

setValue

public void setValue(Object object, Object value)

setWriteMethod

public void setWriteMethod(Method method)
Mutator method used by Introspector. Please understand how this method is used before you start playing with it! :-)

toString

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