Package org.apache.axis.utils
Class BeanPropertyDescriptor
- java.lang.Object
-
- org.apache.axis.utils.BeanPropertyDescriptor
-
- Direct Known Subclasses:
FieldPropertyDescriptor
public class BeanPropertyDescriptor extends java.lang.ObjectThis 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.- Author:
- Rich Scheuerle
, Glen Daniels (gdaniels@apache.org)
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBeanPropertyDescriptor()Protected constructor for use by our childrenBeanPropertyDescriptor(java.beans.PropertyDescriptor pd)Constructor (takes a PropertyDescriptor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectget(java.lang.Object obj)Get the property valuejava.lang.Objectget(java.lang.Object obj, int i)Get an indexed propertyjava.lang.ClassgetActualType()java.lang.StringgetName()Get our property name.java.lang.ClassgetType()Get the type of a propertyprotected voidgrowArrayToSize(java.lang.Object obj, java.lang.Class componentType, int i)Grow the arraybooleanisArray()Query if property is an array (excluded byte[]).booleanisIndexed()Query if property is indexedbooleanisIndexedOrArray()Query if property is indexed or if it' an array.booleanisReadable()Query if property is readablebooleanisWriteable()Query if property is writeablevoidset(java.lang.Object obj, int i, java.lang.Object newValue)Set an indexed property valuevoidset(java.lang.Object obj, java.lang.Object newValue)Set the property value
-
-
-
Method Detail
-
getName
public java.lang.String getName()
Get our property name.
-
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
-
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
-
isArray
public boolean isArray()
Query if property is an array (excluded byte[]).- Returns:
- true if it's an array (excluded byte[])
-
get
public java.lang.Object get(java.lang.Object obj) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessExceptionGet the property value- Parameters:
obj- is the object- Returns:
- the entire propery value
- Throws:
java.lang.reflect.InvocationTargetExceptionjava.lang.IllegalAccessException
-
set
public void set(java.lang.Object obj, java.lang.Object newValue) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessExceptionSet the property value- Parameters:
obj- is the objectnewValue- is the new value- Throws:
java.lang.reflect.InvocationTargetExceptionjava.lang.IllegalAccessException
-
get
public java.lang.Object get(java.lang.Object obj, int i) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessExceptionGet an indexed property- Parameters:
obj- is the objecti- the index- Returns:
- the object at the indicated index
- Throws:
java.lang.reflect.InvocationTargetExceptionjava.lang.IllegalAccessException
-
set
public void set(java.lang.Object obj, int i, java.lang.Object newValue) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessExceptionSet an indexed property value- Parameters:
obj- is the objecti- the indexnewValue- is the new value- Throws:
java.lang.reflect.InvocationTargetExceptionjava.lang.IllegalAccessException
-
growArrayToSize
protected void growArrayToSize(java.lang.Object obj, java.lang.Class componentType, int i) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessExceptionGrow the array- Parameters:
obj-componentType-i-- Throws:
java.lang.reflect.InvocationTargetExceptionjava.lang.IllegalAccessException
-
getType
public java.lang.Class getType()
Get the type of a property- Returns:
- the type of the property
-
getActualType
public java.lang.Class getActualType()
-
-