Logback API
Version 0.9.8

ch.qos.logback.core.util
Class PropertySetter

java.lang.Object
  extended by ch.qos.logback.core.spi.ContextAwareBase
      extended by ch.qos.logback.core.util.PropertySetter
All Implemented Interfaces:
ContextAware

public class PropertySetter
extends ContextAwareBase

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.

Author:
Anders Kristensen, Ceki Gulcu

Field Summary
protected  MethodDescriptor[] methodDescriptors
           
protected  Object obj
           
protected  Class objClass
           
protected  PropertyDescriptor[] propertyDescriptors
           
 
Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context
 
Constructor Summary
PropertySetter(Object obj)
          Create a new PropertySetter for the specified Object.
 
Method Summary
 void addComponent(String name, Object childComponent)
           
 void addProperty(String name, String strValue)
           
 ContainmentType canContainComponent(String name)
           
protected  Object convertArg(String val, Class type)
          Convert val a String parameter to an object of a given type.
protected  Method getMethod(String methodName)
           
 Object getObj()
           
 Class getObjClass()
           
protected  PropertyDescriptor getPropertyDescriptor(String name)
           
protected  void introspect()
          Uses JavaBeans Introspector to computer setters of object to be configured.
 void setComponent(String name, Object childComponent)
           
 void setProperty(PropertyDescriptor prop, String name, String value)
          Set the named property given a PropertyDescriptor.
 void setProperty(String name, String value)
          Set a property on this PropertySetter's Object.
 
Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getStatusManager, setContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

obj

protected Object obj

objClass

protected Class objClass

propertyDescriptors

protected PropertyDescriptor[] propertyDescriptors

methodDescriptors

protected MethodDescriptor[] methodDescriptors
Constructor Detail

PropertySetter

public PropertySetter(Object obj)
Create a new PropertySetter for the specified Object. This is done in preparation 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.


setProperty

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

setProperty

public void setProperty(PropertyDescriptor prop,
                        String name,
                        String value)
                 throws 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:
PropertySetterException

canContainComponent

public ContainmentType canContainComponent(String name)

getObjClass

public Class getObjClass()

addComponent

public void addComponent(String name,
                         Object childComponent)

addProperty

public void addProperty(String name,
                        String strValue)

setComponent

public void setComponent(String name,
                         Object childComponent)

convertArg

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


getMethod

protected Method getMethod(String methodName)

getPropertyDescriptor

protected PropertyDescriptor getPropertyDescriptor(String name)

getObj

public Object getObj()

Logback API
Version 0.9.8

Copyright © 2005-2008 QOS.ch. All Rights Reserved.