java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.joran.util.PropertySetter
- All Implemented Interfaces:
ContextAware
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 reflection to
analyze the given Object Class.
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
PropertySetterException
is thrown.- Author:
- Anders Kristensen, Ceki Gulcu
-
Field Summary
Modifier and TypeFieldDescriptionprotected final AggregationAssessor
protected final BeanDescription
protected final Object
protected final Class
<?> Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context
-
Constructor Summary
ConstructorDescriptionPropertySetter
(BeanDescriptionCache beanDescriptionCache, Object obj) Create a new PropertySetter for the specified Object. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBasicProperty
(String name, String strValue) void
addComplexProperty
(String name, Object complexProperty) computeAggregationType
(String name) Class
<?> getClassNameViaImplicitRules
(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry) getObj()
Class
<?> void
setComplexProperty
(String name, Object complexProperty) void
setContext
(Context context) 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
-
Field Details
-
obj
-
objClass
-
beanDescription
-
aggregationAssessor
-
-
Constructor Details
-
PropertySetter
Create a new PropertySetter for the specified Object. This is done in preparation for invokingsetProperty(java.lang.String, java.lang.String)
one or more times.- Parameters:
obj
- the object for which to set properties
-
-
Method Details
-
setContext
- Specified by:
setContext
in interfaceContextAware
- Overrides:
setContext
in classContextAwareBase
-
setProperty
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
-
computeAggregationType
-
getObjClass
-
addComplexProperty
-
addBasicProperty
-
setComplexProperty
-
getObj
-
getClassNameViaImplicitRules
public Class<?> getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry)
-