org.apache.commons.beanutils
Class MappedPropertyDescriptor
PropertyDescriptor
org.apache.commons.beanutils.MappedPropertyDescriptor
public class MappedPropertyDescriptor
extends 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.
$Revision: 1.18.2.1 $ $Date: 2004/07/27 21:44:26 $- Rey Fran?ois
- Gregor Ra?man
java.beans.PropertyDescriptor
MappedPropertyDescriptor(String propertyName, 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(String propertyName, Class beanClass, String mappedGetterName, String mappedSetterName) - This constructor takes the name of a mapped property, and method
names for reading and writing the property.
|
MappedPropertyDescriptor(String propertyName, Method mappedGetter, Method mappedSetter) - This constructor takes the name of a mapped property, and Method
objects for reading and writing the property.
|
private static String | capitalizePropertyName(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 Method | findMethod(Class cls, String methodName, int argCount) - Find a target methodName on a given class.
|
(package private) static Method | findMethod(Class cls, String methodName, int argCount, args[] ) - Find a target methodName with specific parameter list on a given class.
|
Class | getMappedPropertyType() - Gets the Class object for the property values.
|
Method | getMappedReadMethod() - Gets the method that should be used to read one of the property value.
|
Method | getMappedWriteMethod() - Gets the method that should be used to write one of the property value.
|
private static Method[] | getPublicDeclaredMethods(Class clz)
|
private static Method | internalFindMethod(Class start, String methodName, int argCount) - Internal support for finding a target methodName on a given class.
|
private static Method | internalFindMethod(Class start, String methodName, int argCount, args[] ) - Internal support for finding a target methodName with a given
parameter list on a given class.
|
(package private) static boolean | isSubclass(Class a, 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(Method mappedGetter) - Sets the method that should be used to read one of the property value.
|
void | setMappedWriteMethod(Method mappedSetter) - Sets the method that should be used to write the property value.
|
private boolean | throwsException(Method method, Class exception) - Return true iff the given method throws the given exception.
|
declaredMethodCache
private static java.util.Hashtable declaredMethodCache
mappedPropertyType
private Class mappedPropertyType
The underlying data type of the property we are describing.
mappedReadMethod
private Method mappedReadMethod
The reader method for this property (if any).
mappedWriteMethod
private Method mappedWriteMethod
The writer method for this property (if any).
stringClassArray
private static final Class[] stringClassArray
The parameter types array for the reader method signature.
MappedPropertyDescriptor
public MappedPropertyDescriptor(String propertyName,
Class beanClass)
throws 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.
propertyName
- The programmatic name of the property.beanClass
- The Class object for the target bean. For
example sun.beans.OurButton.class.
MappedPropertyDescriptor
public MappedPropertyDescriptor(String propertyName,
Class beanClass,
String mappedGetterName,
String mappedSetterName)
throws IntrospectionException
This constructor takes the name of a mapped property, and method
names for reading and writing the property.
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.
MappedPropertyDescriptor
public MappedPropertyDescriptor(String propertyName,
Method mappedGetter,
Method mappedSetter)
throws IntrospectionException
This constructor takes the name of a mapped property, and Method
objects for reading and writing the property.
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.
capitalizePropertyName
private static String capitalizePropertyName(String s)
Return a capitalized version of the specified property name.
findMappedPropertyType
private void findMappedPropertyType()
throws IntrospectionException
Introspect our bean class to identify the corresponding getter
and setter methods.
findMethod
(package private) static Method findMethod(Class cls,
String methodName,
int argCount)
throws IntrospectionException
Find a target methodName on a given class.
findMethod
(package private) static Method findMethod(Class cls,
String methodName,
int argCount,
args[] )
throws IntrospectionException
Find a target methodName with specific parameter list on a given class.
getMappedPropertyType
public Class getMappedPropertyType()
Gets the Class object for the property values.
- 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 Method getMappedReadMethod()
Gets the method that should be used to read one of the property value.
- The method that should be used to read the property value.
May return null if the property can't be read.
getMappedWriteMethod
public Method getMappedWriteMethod()
Gets the method that should be used to write one of the property value.
- The method that should be used to write one of the property value.
May return null if the property can't be written.
getPublicDeclaredMethods
private static Method[] getPublicDeclaredMethods(Class clz)
internalFindMethod
private static Method internalFindMethod(Class start,
String methodName,
int argCount)
Internal support for finding a target methodName on a given class.
internalFindMethod
private static Method internalFindMethod(Class start,
String methodName,
int argCount,
args[] )
Internal support for finding a target methodName with a given
parameter list on a given class.
isSubclass
(package private) static boolean isSubclass(Class a,
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.
setMappedReadMethod
public void setMappedReadMethod(Method mappedGetter)
throws IntrospectionException
Sets the method that should be used to read one of the property value.
mappedGetter
- The new getter method.
setMappedWriteMethod
public void setMappedWriteMethod(Method mappedSetter)
throws IntrospectionException
Sets the method that should be used to write the property value.
mappedSetter
- The new setter method.
throwsException
private boolean throwsException(Method method,
Class exception)
Return true iff the given method throws the given exception.
Copyright (c) 2001-2004 - Apache Software Foundation