Class PropertySetter
java.lang.Object
org.apache.commons.jcs3.utils.config.PropertySetter
This class is based on the log4j class org.apache.log4j.config.PropertySetter that was made by
Anders Kristensen
General purpose Object property setter. Clients repeatedly invokes setProperty(name,value)
in order to invoke setters on the Object specified in the constructor.
This class relies on the JavaBeans Introspector
to analyze the given Object Class using
reflection.
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.-
Constructor Summary
ConstructorsConstructorDescriptionPropertySetter
(Object obj) Create a new PropertySetter for the specified Object. -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
convertArg
(String val, Class<?> type) Convertval
a String parameter to an object of a given type.protected PropertyDescriptor
getPropertyDescriptor
(String name) Gets the propertyDescriptor attribute of the PropertySetter objectprotected void
Uses JavaBeansIntrospector
to compute setters of object to be configured.static void
setProperties
(Object obj, Properties properties, String prefix) Set the properties of an object passed as a parameter in one go.void
setProperties
(Properties properties, String prefix) Set the properties for the object that match theprefix
passed as parameter.void
setProperty
(PropertyDescriptor prop, String name, String value) Set the named property given aPropertyDescriptor
.void
setProperty
(String name, String value) Set a property on this PropertySetter's Object.
-
Constructor Details
-
PropertySetter
Create a new PropertySetter for the specified Object. This is done in preparation for invokingsetProperty(java.lang.String, java.lang.String)
one or more times.- Parameters:
obj
- the object for which to set properties
-
-
Method Details
-
introspect
Uses JavaBeansIntrospector
to compute setters of object to be configured. -
setProperties
Set the properties of an object passed as a parameter in one go. Theproperties
are parsed relative to aprefix
.- Parameters:
obj
- The object to configure.properties
- A java.util.Properties containing keys and values.prefix
- Only keys having the specified prefix will be set.
-
setProperties
Set the properties for the object that match theprefix
passed as parameter.- Parameters:
properties
- The new properties valueprefix
- The new properties value
-
setProperty
Set a property on this PropertySetter's Object. If successful, this method will invoke a setter method on the underlying Object. The setter is the one for the specified property name and the value is determined partly from the setter argument type and partly from the value specified in the call to this method.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 Integer.valueOf(value). If the setter expects a boolean, the conversion is by Boolean.valueOf(value).
- Parameters:
name
- name of the propertyvalue
- String value of the property
-
setProperty
public void setProperty(PropertyDescriptor prop, String name, String value) throws PropertySetterException Set the named property given aPropertyDescriptor
.- Parameters:
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.- Throws:
PropertySetterException
-
convertArg
Convertval
a String parameter to an object of a given type.- Parameters:
val
-type
-- Returns:
- Object
-
getPropertyDescriptor
Gets the propertyDescriptor attribute of the PropertySetter object- Parameters:
name
-- Returns:
- The propertyDescriptor value
-