Package org.apache.log4j.config
Class PropertySetter
- java.lang.Object
-
- org.apache.log4j.config.PropertySetter
-
public class PropertySetter extends java.lang.ObjectGeneral purpose Object property setter. Clients repeatedly invokessetProperty(name,value)in order to invoke setters on the Object specified in the constructor. This class relies on the JavaBeansIntrospectorto 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
IntrospectionExceptionare thrown.- Since:
- 1.1
- Author:
- Anders Kristensen
-
-
Constructor Summary
Constructors Constructor Description PropertySetter(java.lang.Object obj)Create a new PropertySetter for the specified Object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate()protected java.lang.ObjectconvertArg(java.lang.String val, java.lang.Class type)Convertvala String parameter to an object of a given type.protected java.beans.PropertyDescriptorgetPropertyDescriptor(java.lang.String name)protected voidintrospect()Uses JavaBeansIntrospectorto computer setters of object to be configured.static voidsetProperties(java.lang.Object obj, java.util.Properties properties, java.lang.String prefix)Set the properties of an object passed as a parameter in one go.voidsetProperties(java.util.Properties properties, java.lang.String prefix)Set the properites for the object that match theprefixpassed as parameter.voidsetProperty(java.beans.PropertyDescriptor prop, java.lang.String name, java.lang.String value)Set the named property given aPropertyDescriptor.voidsetProperty(java.lang.String name, java.lang.String value)Set a property on this PropertySetter's Object.
-
-
-
Constructor Detail
-
PropertySetter
public PropertySetter(java.lang.Object obj)
Create a new PropertySetter for the specified Object. This is done in prepartion for invokingsetProperty(java.lang.String, java.lang.String)one or more times.- Parameters:
obj- the object for which to set properties
-
-
Method Detail
-
introspect
protected void introspect()
Uses JavaBeansIntrospectorto computer setters of object to be configured.
-
setProperties
public static void setProperties(java.lang.Object obj, java.util.Properties properties, java.lang.String prefix)Set the properties of an object passed as a parameter in one go. Thepropertiesare 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
public void setProperties(java.util.Properties properties, java.lang.String prefix)Set the properites for the object that match theprefixpassed as parameter.
-
setProperty
public void setProperty(java.lang.String name, java.lang.String value)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 new Integer(value). If the setter expects a boolean, the conversion is by new Boolean(value).
- Parameters:
name- name of the propertyvalue- String value of the property
-
setProperty
public void setProperty(java.beans.PropertyDescriptor prop, java.lang.String name, java.lang.String value) throws PropertySetterExceptionSet 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
protected java.lang.Object convertArg(java.lang.String val, java.lang.Class type)Convertvala String parameter to an object of a given type.
-
getPropertyDescriptor
protected java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.String name)
-
activate
public void activate()
-
-