org.apache.commons.beanutils
Class MappedPropertyDescriptor
java.lang.Object
|
+--java.beans.FeatureDescriptor
|
+--java.beans.PropertyDescriptor
|
+--org.apache.commons.beanutils.MappedPropertyDescriptor
- public class MappedPropertyDescriptor
- extends java.beans.PropertyDescriptor
A MappedPropertyDescriptor describes one mapped property.
Mapped properties are multivalued properties like indexed properties
but that are accessed with a String key instead of an index.
Such property values are typically stored in a Map collection.
For this class to work properly, a mapped value must have
getter and setter methods of the form
getProperty(String key) and
set<Property>(String key, Object value),
where Property
must be replaced
by the name of the property.
- Version:
- $Revision: 1.18.2.1 $ $Date: 2004/07/27 21:44:26 $
- Author:
- Rey François, Gregor Raıman
- See Also:
PropertyDescriptor
Field Summary |
private static java.util.Hashtable |
declaredMethodCache
|
private java.lang.Class |
mappedPropertyType
The underlying data type of the property we are describing. |
private java.lang.reflect.Method |
mappedReadMethod
The reader method for this property (if any). |
private java.lang.reflect.Method |
mappedWriteMethod
The writer method for this property (if any). |
private static java.lang.Class[] |
stringClassArray
The parameter types array for the reader method signature. |
Fields inherited from class java.beans.PropertyDescriptor |
|
Fields inherited from class java.beans.FeatureDescriptor |
|
Constructor Summary |
MappedPropertyDescriptor(java.lang.String propertyName,
java.lang.Class beanClass)
Constructs a MappedPropertyDescriptor for a property that follows
the standard Java convention by having getFoo and setFoo
accessor methods, with the addition of a String parameter (the key). |
MappedPropertyDescriptor(java.lang.String propertyName,
java.lang.Class beanClass,
java.lang.String mappedGetterName,
java.lang.String mappedSetterName)
This constructor takes the name of a mapped property, and method
names for reading and writing the property. |
MappedPropertyDescriptor(java.lang.String propertyName,
java.lang.reflect.Method mappedGetter,
java.lang.reflect.Method mappedSetter)
This constructor takes the name of a mapped property, and Method
objects for reading and writing the property. |
Method Summary |
private static java.lang.String |
capitalizePropertyName(java.lang.String s)
Return a capitalized version of the specified property name. |
private void |
findMappedPropertyType()
Introspect our bean class to identify the corresponding getter
and setter methods. |
(package private) static java.lang.reflect.Method |
findMethod(java.lang.Class cls,
java.lang.String methodName,
int argCount)
Find a target methodName on a given class. |
(package private) static java.lang.reflect.Method |
findMethod(java.lang.Class cls,
java.lang.String methodName,
int argCount,
java.lang.Class[] args)
Find a target methodName with specific parameter list on a given class. |
java.lang.Class |
getMappedPropertyType()
Gets the Class object for the property values. |
java.lang.reflect.Method |
getMappedReadMethod()
Gets the method that should be used to read one of the property value. |
java.lang.reflect.Method |
getMappedWriteMethod()
Gets the method that should be used to write one of the property value. |
private static java.lang.reflect.Method[] |
getPublicDeclaredMethods(java.lang.Class clz)
|
private static java.lang.reflect.Method |
internalFindMethod(java.lang.Class start,
java.lang.String methodName,
int argCount)
Internal support for finding a target methodName on a given class. |
private static java.lang.reflect.Method |
internalFindMethod(java.lang.Class start,
java.lang.String methodName,
int argCount,
java.lang.Class[] args)
Internal support for finding a target methodName with a given
parameter list on a given class. |
(package private) static boolean |
isSubclass(java.lang.Class a,
java.lang.Class b)
Return true if class a is either equivalent to class b, or
if class a is a subclass of class b, ie if a either "extends"
or "implements" b. |
void |
setMappedReadMethod(java.lang.reflect.Method mappedGetter)
Sets the method that should be used to read one of the property value. |
void |
setMappedWriteMethod(java.lang.reflect.Method mappedSetter)
Sets the method that should be used to write the property value. |
private boolean |
throwsException(java.lang.reflect.Method method,
java.lang.Class exception)
Return true iff the given method throws the given exception. |
Methods inherited from class java.beans.PropertyDescriptor |
equals, getPropertyEditorClass, getPropertyType, getReadMethod, getWriteMethod, isBound, isConstrained, setBound, setConstrained, setPropertyEditorClass, setReadMethod, setWriteMethod |
Methods inherited from class java.beans.FeatureDescriptor |
attributeNames, getDisplayName, getName, getShortDescription, getValue, isExpert, isHidden, isPreferred, setDisplayName, setExpert, setHidden, setName, setPreferred, setShortDescription, setValue |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
mappedPropertyType
private java.lang.Class mappedPropertyType
- The underlying data type of the property we are describing.
mappedReadMethod
private java.lang.reflect.Method mappedReadMethod
- The reader method for this property (if any).
mappedWriteMethod
private java.lang.reflect.Method mappedWriteMethod
- The writer method for this property (if any).
stringClassArray
private static final java.lang.Class[] stringClassArray
- The parameter types array for the reader method signature.
declaredMethodCache
private static java.util.Hashtable declaredMethodCache
MappedPropertyDescriptor
public MappedPropertyDescriptor(java.lang.String propertyName,
java.lang.Class beanClass)
throws java.beans.IntrospectionException
- Constructs a MappedPropertyDescriptor for a property that follows
the standard Java convention by having getFoo and setFoo
accessor methods, with the addition of a String parameter (the key).
Thus if the argument name is "fred", it will
assume that the writer method is "setFred" and the reader method
is "getFred". Note that the property name should start with a lower
case character, which will be capitalized in the method names.
- Parameters:
propertyName
- The programmatic name of the property.beanClass
- The Class object for the target bean. For
example sun.beans.OurButton.class.
- Throws:
java.beans.IntrospectionException
- if an exception occurs during
introspection.
MappedPropertyDescriptor
public MappedPropertyDescriptor(java.lang.String propertyName,
java.lang.Class beanClass,
java.lang.String mappedGetterName,
java.lang.String mappedSetterName)
throws java.beans.IntrospectionException
- This constructor takes the name of a mapped property, and method
names for reading and writing the property.
- Parameters:
propertyName
- The programmatic name of the property.beanClass
- The Class object for the target bean. For
example sun.beans.OurButton.class.mappedGetterName
- The name of the method used for
reading one of the property values. May be null if the
property is write-only.mappedSetterName
- The name of the method used for writing
one of the property values. May be null if the property is
read-only.
- Throws:
java.beans.IntrospectionException
- if an exception occurs during
introspection.
MappedPropertyDescriptor
public MappedPropertyDescriptor(java.lang.String propertyName,
java.lang.reflect.Method mappedGetter,
java.lang.reflect.Method mappedSetter)
throws java.beans.IntrospectionException
- This constructor takes the name of a mapped property, and Method
objects for reading and writing the property.
- Parameters:
propertyName
- The programmatic name of the property.mappedGetter
- The method used for reading one of
the property values. May be be null if the property
is write-only.mappedSetter
- The method used for writing one the
property values. May be null if the property is read-only.
- Throws:
java.beans.IntrospectionException
- if an exception occurs during
introspection.
getMappedPropertyType
public java.lang.Class getMappedPropertyType()
- Gets the Class object for the property values.
- Returns:
- The Java type info for the property values. Note that
the "Class" object may describe a built-in Java type such as "int".
The result may be "null" if this is a mapped property that
does not support non-keyed access.
This is the type that will be returned by the mappedReadMethod.
getMappedReadMethod
public java.lang.reflect.Method getMappedReadMethod()
- Gets the method that should be used to read one of the property value.
- Returns:
- The method that should be used to read the property value.
May return null if the property can't be read.
setMappedReadMethod
public void setMappedReadMethod(java.lang.reflect.Method mappedGetter)
throws java.beans.IntrospectionException
- Sets the method that should be used to read one of the property value.
- Parameters:
mappedGetter
- The new getter method.
java.beans.IntrospectionException
getMappedWriteMethod
public java.lang.reflect.Method getMappedWriteMethod()
- Gets the method that should be used to write one of the property value.
- Returns:
- The method that should be used to write one of the property value.
May return null if the property can't be written.
setMappedWriteMethod
public void setMappedWriteMethod(java.lang.reflect.Method mappedSetter)
throws java.beans.IntrospectionException
- Sets the method that should be used to write the property value.
- Parameters:
mappedSetter
- The new setter method.
java.beans.IntrospectionException
findMappedPropertyType
private void findMappedPropertyType()
throws java.beans.IntrospectionException
- Introspect our bean class to identify the corresponding getter
and setter methods.
java.beans.IntrospectionException
capitalizePropertyName
private static java.lang.String capitalizePropertyName(java.lang.String s)
- Return a capitalized version of the specified property name.
- Parameters:
s
- The property name
getPublicDeclaredMethods
private static java.lang.reflect.Method[] getPublicDeclaredMethods(java.lang.Class clz)
internalFindMethod
private static java.lang.reflect.Method internalFindMethod(java.lang.Class start,
java.lang.String methodName,
int argCount)
- Internal support for finding a target methodName on a given class.
internalFindMethod
private static java.lang.reflect.Method internalFindMethod(java.lang.Class start,
java.lang.String methodName,
int argCount,
java.lang.Class[] args)
- Internal support for finding a target methodName with a given
parameter list on a given class.
findMethod
static java.lang.reflect.Method findMethod(java.lang.Class cls,
java.lang.String methodName,
int argCount)
throws java.beans.IntrospectionException
- Find a target methodName on a given class.
java.beans.IntrospectionException
findMethod
static java.lang.reflect.Method findMethod(java.lang.Class cls,
java.lang.String methodName,
int argCount,
java.lang.Class[] args)
throws java.beans.IntrospectionException
- Find a target methodName with specific parameter list on a given class.
java.beans.IntrospectionException
isSubclass
static boolean isSubclass(java.lang.Class a,
java.lang.Class b)
- Return true if class a is either equivalent to class b, or
if class a is a subclass of class b, ie if a either "extends"
or "implements" b.
Note tht either or both "Class" objects may represent interfaces.
throwsException
private boolean throwsException(java.lang.reflect.Method method,
java.lang.Class exception)
- Return true iff the given method throws the given exception.
Copyright (c) 2001-2004 - Apache Software Foundation