package org.ovirt.engine.core.compat.backendcompat;
import java.beans.PropertyDescriptor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
//This will be a wrapper for import java.beans.PropertyDescriptor;
public class PropertyInfo {
private static Log log = LogFactory.getLog(PropertyInfo.class);
private PropertyDescriptor pd;
public PropertyInfo(PropertyDescriptor pd) {
this.pd = pd;
}
public String getName() {
return pd.getName();
}
public Object GetValue(Object obj, Object defaultValue) {
Object returnValue = null;
try {
returnValue = pd.getReadMethod().invoke(obj);
} catch (Exception e) {
log.warn("Unable to get value of property: " + pd.getDisplayName() + " for class "
+ obj.getClass().getName());
}
return returnValue == null ? defaultValue : returnValue;
}
public boolean getCanWrite() {
return pd.getWriteMethod() != null;
}
public boolean isPropertyInstanceOf(Class<?> clazz) {
return this.pd.getPropertyType().equals(clazz);
}
}