public class PropertySetter extends ContextAwareBase
setProperty(name,value) in order to invoke setters on
the Object specified in the constructor.
Usage:
PropertySetter ps = new PropertySetter(anObject);
ps.set("name", "Joe");
ps.set("age", "32");
ps.set("isMale", "true");
will cause the invocations anObject.setName("Joe"), anObject.setAge(32), and
setMale(true) if such methods exist with those signatures. Otherwise an
IntrospectionException are thrown.| Modifier and Type | Field and Description |
|---|---|
protected MethodDescriptor[] |
methodDescriptors |
protected java.lang.Object |
obj |
protected java.lang.Class<?> |
objClass |
protected PropertyDescriptor[] |
propertyDescriptors |
context| Constructor and Description |
|---|
PropertySetter(java.lang.Object obj)
Create a new PropertySetter for the specified Object.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addBasicProperty(java.lang.String name,
java.lang.String strValue) |
void |
addComplexProperty(java.lang.String name,
java.lang.Object complexProperty) |
AggregationType |
computeAggregationType(java.lang.String name) |
java.lang.Class<?> |
getClassNameViaImplicitRules(java.lang.String name,
AggregationType aggregationType,
DefaultNestedComponentRegistry registry) |
protected java.lang.reflect.Method |
getMethod(java.lang.String methodName) |
java.lang.Object |
getObj() |
java.lang.Class<?> |
getObjClass() |
protected PropertyDescriptor |
getPropertyDescriptor(java.lang.String name) |
protected void |
introspect()
Uses JavaBeans
Introspector to computer setters of object to be
configured. |
void |
setComplexProperty(java.lang.String name,
java.lang.Object complexProperty) |
void |
setProperty(PropertyDescriptor prop,
java.lang.String name,
java.lang.String value)
Set the named property given a
PropertyDescriptor. |
void |
setProperty(java.lang.String name,
java.lang.String value)
Set a property on this PropertySetter's Object.
|
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContextprotected java.lang.Object obj
protected java.lang.Class<?> objClass
protected PropertyDescriptor[] propertyDescriptors
protected MethodDescriptor[] methodDescriptors
public PropertySetter(java.lang.Object obj)
setProperty(java.lang.String, java.lang.String) one or more times.obj - the object for which to set propertiesprotected void introspect()
Introspector to computer setters of object to be
configured.public void setProperty(java.lang.String name,
java.lang.String value)
If the setter expects a String no conversion is necessary. If it expects an int, then an attempt is made to convert 'value' to an int using new Integer(value). If the setter expects a boolean, the conversion is by new Boolean(value).
name - name of the propertyvalue - String value of the propertypublic void setProperty(PropertyDescriptor prop, java.lang.String name, java.lang.String value) throws PropertySetterException
PropertyDescriptor.prop - A PropertyDescriptor describing the characteristics of the
property to set.name - The named of the property to set.value - The value of the property.PropertySetterException - No setter for property; setter's argument list is not equal to 1; parameter conversion failurepublic AggregationType computeAggregationType(java.lang.String name)
public java.lang.Class<?> getObjClass()
public void addComplexProperty(java.lang.String name,
java.lang.Object complexProperty)
public void addBasicProperty(java.lang.String name,
java.lang.String strValue)
public void setComplexProperty(java.lang.String name,
java.lang.Object complexProperty)
protected java.lang.reflect.Method getMethod(java.lang.String methodName)
protected PropertyDescriptor getPropertyDescriptor(java.lang.String name)
public java.lang.Object getObj()
public java.lang.Class<?> getClassNameViaImplicitRules(java.lang.String name,
AggregationType aggregationType,
DefaultNestedComponentRegistry registry)