org.apache.axis.utils

Class BeanPropertyDescriptor

Known Direct Subclasses:
FieldPropertyDescriptor

public class BeanPropertyDescriptor
extends java.lang.Object

This class represents a field/property in a value type (a class with either bean-style getters/setters or public fields). It is essentially a thin wrapper around the PropertyDescriptor from the JavaBean utilities. We wrap it with this class so that we can create the subclass FieldPropertyDescriptor and access public fields (who wouldn't have PropertyDescriptors normally) via the same interface. There are also some interesting tricks where indexed properties are concerned, mostly involving the fact that we manage the arrays here rather than relying on the value type class to do it itself.

Authors:
Rich Scheuerle
Glen Daniels (gdaniels@apache.org)

Field Summary

protected static Log
log
protected PropertyDescriptor
myPD
protected static Object[]
noArgs

Constructor Summary

BeanPropertyDescriptor()
Protected constructor for use by our children
BeanPropertyDescriptor(PropertyDescriptor pd)
Constructor (takes a PropertyDescriptor)

Method Summary

Object
get(Object obj)
Get the property value
Object
get(Object obj, int i)
Get an indexed property
Class
getActualType()
String
getName()
Get our property name.
Class
getType()
Get the type of a property
protected void
growArrayToSize(Object obj, Class componentType, int i)
Grow the array
boolean
isArray()
Query if property is an array (excluded byte[]).
boolean
isIndexed()
Query if property is indexed
boolean
isIndexedOrArray()
Query if property is indexed or if it' an array.
boolean
isReadable()
Query if property is readable
boolean
isWriteable()
Query if property is writeable
void
set(Object obj, Object newValue)
Set the property value
void
set(Object obj, int i, Object newValue)
Set an indexed property value

Field Details

log

protected static Log log


myPD

protected PropertyDescriptor myPD


noArgs

protected static final Object[] noArgs

Constructor Details

BeanPropertyDescriptor

protected BeanPropertyDescriptor()
Protected constructor for use by our children


BeanPropertyDescriptor

public BeanPropertyDescriptor(PropertyDescriptor pd)
Constructor (takes a PropertyDescriptor)

Parameters:
pd -

Method Details

get

public Object get(Object obj)
            throws InvocationTargetException,
                   IllegalAccessException
Get the property value

Parameters:
obj - is the object

Returns:
the entire propery value


get

public Object get(Object obj,
                  int i)
            throws InvocationTargetException,
                   IllegalAccessException
Get an indexed property

Parameters:
obj - is the object
i - the index

Returns:
the object at the indicated index


getActualType

public Class getActualType()


getName

public String getName()
Get our property name.


getType

public Class getType()
Get the type of a property

Returns:
the type of the property


growArrayToSize

protected void growArrayToSize(Object obj,
                               Class componentType,
                               int i)
            throws InvocationTargetException,
                   IllegalAccessException
Grow the array

Parameters:
obj -
componentType -
i -


isArray

public boolean isArray()
Query if property is an array (excluded byte[]).

Returns:
true if it's an array (excluded byte[])


isIndexed

public boolean isIndexed()
Query if property is indexed

Returns:
true if indexed methods exist


isIndexedOrArray

public boolean isIndexedOrArray()
Query if property is indexed or if it' an array.

Returns:
true if indexed methods exist or if it's an array


isReadable

public boolean isReadable()
Query if property is readable

Returns:
true if readable


isWriteable

public boolean isWriteable()
Query if property is writeable

Returns:
true if writeable


set

public void set(Object obj,
                Object newValue)
            throws InvocationTargetException,
                   IllegalAccessException
Set the property value

Parameters:
obj - is the object
newValue - is the new value


set

public void set(Object obj,
                int i,
                Object newValue)
            throws InvocationTargetException,
                   IllegalAccessException
Set an indexed property value

Parameters:
obj - is the object
i - the index
newValue - is the new value


Copyright B) 2005 Apache Web Services Project. All Rights Reserved.