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
General purpose Object property setter. Clients repeatedly invokes
to analyze the given Object Class using reflection.
are thrown.
setProperty(name,value) in order to invoke setters on
the Object specified in the constructor. This class relies on the JavaBeans
invalid reference
Introspector
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
invalid reference
IntrospectionException
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BeanDescriptionprotected final Objectprotected final Class<?> Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context -
Constructor Summary
ConstructorsConstructorDescriptionPropertySetter(BeanDescriptionCache beanDescriptionCache, Object obj) Create a new PropertySetter for the specified Object. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBasicProperty(String name, String strValue) voidaddComplexProperty(String name, Object complexProperty) private StringcapitalizeFirstLetter(String name) computeAggregationType(String name) private AggregationTypecomputeRawAggregationType(Method method) private MethodfindAdderMethod(String name) private MethodfindSetterMethod(String name) (package private) <T extends Annotation>
TgetAnnotation(String name, Class<T> annonationClass, Method relevantMethod) (package private) Class<?> getByConcreteType(String name, Method relevantMethod) Class<?> getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry) (package private) Class<?> getDefaultClassNameByAnnonation(String name, Method relevantMethod) getObj()Class<?> private Class<?> getParameterClassForMethod(Method method) (package private) MethodgetRelevantMethod(String name, AggregationType aggregationType) (package private) voidinvokeMethodWithSingleParameterOnThisObject(Method method, Object parameter) private booleanisSanityCheckSuccessful(String name, Method method, Class<?>[] params, Object complexProperty) private booleanisUnequivocallyInstantiable(Class<?> clazz) Can the given clazz instantiable with certainty?voidsetComplexProperty(String name, Object complexProperty) private voidsetProperty(Method setter, String name, String value) Set the named property given a.invalid reference
PropertyDescriptorvoidsetProperty(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
-
Field Details
-
obj
-
objClass
-
beanDescription
-
-
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
-
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
-
setProperty
Set the named property given a.invalid reference
PropertyDescriptor- Parameters:
name- The named of the property to set.value- The value of the property.prop- A PropertyDescriptor describing the characteristics of the property to set.- Throws:
PropertySetterException
-
computeAggregationType
-
findAdderMethod
-
findSetterMethod
-
getParameterClassForMethod
-
computeRawAggregationType
-
isUnequivocallyInstantiable
Can the given clazz instantiable with certainty?- Parameters:
clazz- The class to test for instantiability- Returns:
- true if clazz can be instantiated, and false otherwise.
-
getObjClass
-
addComplexProperty
-
invokeMethodWithSingleParameterOnThisObject
-
addBasicProperty
-
setComplexProperty
-
isSanityCheckSuccessful
-
capitalizeFirstLetter
-
getObj
-
getRelevantMethod
-
getAnnotation
<T extends Annotation> T getAnnotation(String name, Class<T> annonationClass, Method relevantMethod) -
getDefaultClassNameByAnnonation
-
getByConcreteType
-
getClassNameViaImplicitRules
public Class<?> getClassNameViaImplicitRules(String name, AggregationType aggregationType, DefaultNestedComponentRegistry registry)
-