PropertyGetterpublic class PropertyGetter extends Object Used for inferring configuration information for a log4j's component. |
Fields Summary |
---|
protected static final Object[] | NULL_ARG | protected Object | obj | protected PropertyDescriptor[] | props |
Constructors Summary |
---|
public PropertyGetter(Object obj)Create a new PropertyGetter for the specified Object. This is done
in prepartion for invoking {@link
#getProperties(PropertyGetter.PropertyCallback, String)} one or
more times.
BeanInfo bi = Introspector.getBeanInfo(obj.getClass());
props = bi.getPropertyDescriptors();
this.obj = obj;
|
Methods Summary |
---|
public static void | getProperties(java.lang.Object obj, org.apache.log4j.config.PropertyGetter$PropertyCallback callback, java.lang.String prefix)
try {
new PropertyGetter(obj).getProperties(callback, prefix);
} catch (IntrospectionException ex) {
LogLog.error("Failed to introspect object " + obj, ex);
}
| public void | getProperties(org.apache.log4j.config.PropertyGetter$PropertyCallback callback, java.lang.String prefix)
for (int i = 0; i < props.length; i++) {
Method getter = props[i].getReadMethod();
if (getter == null) continue;
if (!isHandledType(getter.getReturnType())) {
//System.err.println("Ignoring " + props[i].getName() +" " + getter.getReturnType());
continue;
}
String name = props[i].getName();
try {
Object result = getter.invoke(obj, NULL_ARG);
//System.err.println("PROP " + name +": " + result);
if (result != null) {
callback.foundProperty(obj, prefix, name, result);
}
} catch (Exception ex) {
LogLog.warn("Failed to get value of property " + name);
}
}
| protected boolean | isHandledType(java.lang.Class type)
return String.class.isAssignableFrom(type) ||
Integer.TYPE.isAssignableFrom(type) ||
Long.TYPE.isAssignableFrom(type) ||
Boolean.TYPE.isAssignableFrom(type) ||
Priority.class.isAssignableFrom(type);
|
|