org.apache.log4j.config
Class PaxPropertySetter

java.lang.Object
  extended by org.apache.log4j.config.PaxPropertySetter

public class PaxPropertySetter
extends java.lang.Object

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:

     PaxPropertySetter ps = new PaxPropertySetter(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.

Since:
1.1
Author:
Anders Kristensen

Nested Class Summary
static class PaxPropertySetter.ObjectFactory
           
 
Field Summary
protected  java.lang.Object obj
           
protected  java.beans.PropertyDescriptor[] props
           
 
Constructor Summary
PaxPropertySetter(java.lang.Object obj)
          Create a new PaxPropertySetter for the specified Object.
 
Method Summary
 void activate()
           
protected  java.lang.Object convertArg(java.lang.String val, java.lang.Class type)
          Convert val a String parameter to an object of a given type.
protected  java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.String name)
           
protected  void introspect()
          Uses JavaBeans Introspector to computer setters of object to be configured.
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.
 void setProperties(java.util.Properties properties, java.lang.String prefix)
          Set the properites for the object that match the prefix passed as parameter.
 void setProperty(java.beans.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 PaxPropertySetter's Object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

obj

protected java.lang.Object obj

props

protected java.beans.PropertyDescriptor[] props
Constructor Detail

PaxPropertySetter

public PaxPropertySetter(java.lang.Object obj)
Create a new PaxPropertySetter for the specified Object. This is done in prepartion for invoking setProperty(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 JavaBeans Introspector to 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. 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.

setProperties

public void setProperties(java.util.Properties properties,
                          java.lang.String prefix)
Set the properites for the object that match the prefix passed as parameter.


setProperty

public void setProperty(java.lang.String name,
                        java.lang.String value)
Set a property on this PaxPropertySetter'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

setProperty

public void setProperty(java.beans.PropertyDescriptor prop,
                        java.lang.String name,
                        java.lang.String value)
                 throws org.apache.log4j.config.PropertySetterException
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.
Throws:
org.apache.log4j.config.PropertySetterException

convertArg

protected java.lang.Object convertArg(java.lang.String val,
                                      java.lang.Class type)
Convert val a String parameter to an object of a given type.


getPropertyDescriptor

protected java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.String name)

activate

public void activate()


Copyright © 2006-2011 OPS4J - Open Participation Software for Java. All Rights Reserved.