public class

PropertySetter

extends Object
java.lang.Object
   ↳ org.apache.log4j.config.PropertySetter

Class Overview

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.

Summary

Fields
protected Object obj
protected PropertyDescriptor[] props
Public Constructors
PropertySetter(Object obj)
Create a new PropertySetter for the specified Object.
Public Methods
void activate()
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 properites for the object that match the prefix passed as parameter.
void setProperty(String name, String value)
Set a property on this PropertySetter's Object.
void setProperty(PropertyDescriptor prop, String name, String value)
Set the named property given a PropertyDescriptor.
Protected Methods
Object convertArg(String val, Class type)
Convert val a String parameter to an object of a given type.
PropertyDescriptor getPropertyDescriptor(String name)
void introspect()
Uses JavaBeans Introspector to computer setters of object to be configured.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected Object obj

protected PropertyDescriptor[] props

Public Constructors

public PropertySetter (Object obj)

Create a new PropertySetter for the specified Object. This is done in prepartion for invoking setProperty(PropertyDescriptor, String, String) one or more times.

Parameters
obj the object for which to set properties

Public Methods

public void activate ()

public static void setProperties (Object obj, Properties properties, String prefix)

Set the properties of an object passed as a parameter in one go. The properties are parsed relative to a prefix.

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.

public void setProperties (Properties properties, String prefix)

Set the properites for the object that match the prefix passed as parameter.

public void setProperty (String name, 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 property
value String value of the property

public void setProperty (PropertyDescriptor prop, String name, String value)

Set the named property given a PropertyDescriptor.

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.

Protected Methods

protected Object convertArg (String val, Class type)

Convert val a String parameter to an object of a given type.

protected PropertyDescriptor getPropertyDescriptor (String name)

protected void introspect ()

Uses JavaBeans Introspector to computer setters of object to be configured.