- 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 invokessetProperty(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
PropertySetterExceptionis thrown.- Author:
- Anders Kristensen, Ceki Gulcu
-
-
Field Summary
Fields Modifier and Type Field Description protected AggregationAssessoraggregationAssessorprotected BeanDescriptionbeanDescriptionprotected Objectobjprotected 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBasicProperty(String name, String strValue)voidaddComplexProperty(String name, Object complexProperty)AggregationTypecomputeAggregationType(String name)Class<?>getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry)ObjectgetObj()Class<?>getObjClass()Class<?>getTypeForComplexProperty(String nestedElementTagName, AggregationType aggregationType)voidsetComplexProperty(String name, Object complexProperty)voidsetContext(Context context)voidsetProperty(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 Detail
-
beanDescription
protected final BeanDescription beanDescription
-
aggregationAssessor
protected final AggregationAssessor aggregationAssessor
-
-
Constructor Detail
-
PropertySetter
public PropertySetter(BeanDescriptionCache beanDescriptionCache, Object obj)
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 Detail
-
setContext
public void setContext(Context context)
- Specified by:
setContextin interfaceContextAware- Overrides:
setContextin classContextAwareBase
-
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 propertyvalue- 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)
-
getClassNameViaImplicitRules
public Class<?> getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry)
-
getTypeForComplexProperty
public Class<?> getTypeForComplexProperty(String nestedElementTagName, AggregationType aggregationType)
-
-