Package ch.qos.logback.core.joran.util

# Class PropertySetter

java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.joran.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

Fields
Modifier and Type
Field
Description
`protected final BeanDescription`
`beanDescription`
`protected final Object`
`obj`
`protected final Class<?>`
`objClass`

### Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase

`context`

## Constructor Summary

Constructors
Constructor
Description
`PropertySetter(BeanDescriptionCache beanDescriptionCache, Object obj)`
Create a new PropertySetter for the specified Object.

## Method Summary

Modifier and Type
Method
Description
`void`
`addBasicProperty(String name, String strValue)`
`void`
`addComplexProperty(String name, Object complexProperty)`
`AggregationType`
`computeAggregationType(String name)`
`Class<?>`
`getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry)`
`Object`
`getObj()`
`Class<?>`
`getObjClass()`
`void`
`setComplexProperty(String name, Object complexProperty)`
`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, getDeclaredOrigin, getStatusManager, setContext`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### obj

protected final Object obj

### objClass

protected final Class<?> objClass

### beanDescription

protected final BeanDescription beanDescription

## Constructor Details

### PropertySetter

public PropertySetter(BeanDescriptionCache beanDescriptionCache, 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 Details

### 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

### computeAggregationType

public AggregationType computeAggregationType(String name)

### getObjClass

public Class<?> getObjClass()

### addComplexProperty

public void addComplexProperty(String name, Object complexProperty)

### addBasicProperty

public void addBasicProperty(String name, String strValue)

### setComplexProperty

public void setComplexProperty(String name, Object complexProperty)

### getObj

public Object getObj()

### getClassNameViaImplicitRules

public Class<?> getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry)