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.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.- Author:
- Rich Scheuerle
, Glen Daniels (gdaniels@apache.org)
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BeanPropertyDescriptor()
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.Object
get(java.lang.Object obj)
Get the property valuejava.lang.Object
get(java.lang.Object obj, int i)
Get an indexed propertyjava.lang.Class
getActualType()
java.lang.String
getName()
Get our property name.java.lang.Class
getType()
Get the type of a propertyprotected void
growArrayToSize(java.lang.Object obj, java.lang.Class componentType, int i)
Grow the arrayboolean
isArray()
Query if property is an array (excluded byte[]).boolean
isIndexed()
Query if property is indexedboolean
isIndexedOrArray()
Query if property is indexed or if it' an array.boolean
isReadable()
Query if property is readableboolean
isWriteable()
Query if property is writeablevoid
set(java.lang.Object obj, int i, java.lang.Object newValue)
Set an indexed property valuevoid
set(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.IllegalAccessException
Get the property value- Parameters:
obj
- is the object- Returns:
- the entire propery value
- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
set
public void set(java.lang.Object obj, java.lang.Object newValue) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
Set the property value- Parameters:
obj
- is the objectnewValue
- is the new value- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
get
public java.lang.Object get(java.lang.Object obj, int i) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
Get an indexed property- Parameters:
obj
- is the objecti
- the index- Returns:
- the object at the indicated index
- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
set
public void set(java.lang.Object obj, int i, java.lang.Object newValue) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
Set an indexed property value- Parameters:
obj
- is the objecti
- the indexnewValue
- is the new value- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
growArrayToSize
protected void growArrayToSize(java.lang.Object obj, java.lang.Class componentType, int i) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
Grow the array- Parameters:
obj
-componentType
-i
-- Throws:
java.lang.reflect.InvocationTargetException
java.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()
-
-