public class MappedPropertyDescriptor
extends java.beans.PropertyDescriptor
getProperty(String key)
and
setProperty(String key, Object value)
,
where Property
must be replaced
by the name of the property.
PropertyDescriptor
Modifier and Type | Class and Description |
---|---|
private static class |
MappedPropertyDescriptor.MappedMethodReference
Holds a
Method in a SoftReference so that it
it doesn't prevent any ClassLoader being garbage collected, but
tries to re-create the method if the method reference has been
released. |
Modifier and Type | Field and Description |
---|---|
private java.lang.ref.Reference<java.lang.Class<?>> |
mappedPropertyTypeRef
The underlying data type of the property we are describing.
|
private MappedPropertyDescriptor.MappedMethodReference |
mappedReadMethodRef
The reader method for this property (if any).
|
private MappedPropertyDescriptor.MappedMethodReference |
mappedWriteMethodRef
The writer method for this property (if any).
|
private static java.lang.Class<?>[] |
STRING_CLASS_PARAMETER
The parameter types array for the reader method signature.
|
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
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 |
getMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes)
Find a method on a class with a specified parameter list.
|
private static java.lang.reflect.Method |
getMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
int parameterCount)
Find a method on a class with a specified number of parameters.
|
private static java.lang.reflect.Method |
internalGetMethod(java.lang.Class<?> initial,
java.lang.String methodName,
int parameterCount)
Find a method on a class with a specified number of parameters.
|
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.
|
createPropertyEditor, equals, getPropertyEditorClass, getPropertyType, getReadMethod, getWriteMethod, hashCode, isBound, isConstrained, setBound, setConstrained, setPropertyEditorClass, setReadMethod, setWriteMethod
private java.lang.ref.Reference<java.lang.Class<?>> mappedPropertyTypeRef
private MappedPropertyDescriptor.MappedMethodReference mappedReadMethodRef
private MappedPropertyDescriptor.MappedMethodReference mappedWriteMethodRef
private static final java.lang.Class<?>[] STRING_CLASS_PARAMETER
public MappedPropertyDescriptor(java.lang.String propertyName, java.lang.Class<?> beanClass) throws java.beans.IntrospectionException
propertyName
- The programmatic name of the property.beanClass
- The Class object for the target bean. For
example sun.beans.OurButton.class.java.beans.IntrospectionException
- if an exception occurs during
introspection.public MappedPropertyDescriptor(java.lang.String propertyName, java.lang.Class<?> beanClass, java.lang.String mappedGetterName, java.lang.String mappedSetterName) throws java.beans.IntrospectionException
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.java.beans.IntrospectionException
- if an exception occurs during
introspection.public MappedPropertyDescriptor(java.lang.String propertyName, java.lang.reflect.Method mappedGetter, java.lang.reflect.Method mappedSetter) throws java.beans.IntrospectionException
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.java.beans.IntrospectionException
- if an exception occurs during
introspection.public java.lang.Class<?> getMappedPropertyType()
This is the type that will be returned by the mappedReadMethod.
public java.lang.reflect.Method getMappedReadMethod()
public void setMappedReadMethod(java.lang.reflect.Method mappedGetter) throws java.beans.IntrospectionException
mappedGetter
- The mapped getter method.java.beans.IntrospectionException
- If an error occurs finding the
mapped propertypublic java.lang.reflect.Method getMappedWriteMethod()
public void setMappedWriteMethod(java.lang.reflect.Method mappedSetter) throws java.beans.IntrospectionException
mappedSetter
- The mapped setter method.java.beans.IntrospectionException
- If an error occurs finding the
mapped propertyprivate void findMappedPropertyType() throws java.beans.IntrospectionException
java.beans.IntrospectionException
private static java.lang.String capitalizePropertyName(java.lang.String s)
s
- The property nameprivate static java.lang.reflect.Method internalGetMethod(java.lang.Class<?> initial, java.lang.String methodName, int parameterCount)
private static java.lang.reflect.Method getMethod(java.lang.Class<?> clazz, java.lang.String methodName, int parameterCount) throws java.beans.IntrospectionException
java.beans.IntrospectionException
private static java.lang.reflect.Method getMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>[] parameterTypes) throws java.beans.IntrospectionException
java.beans.IntrospectionException
Copyright (c) 2000-2008 - Apache Software Foundation