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 © 2005 Apache Web Services Project. All Rights Reserved.