package org.ovirt.engine.core.compat.backendcompat; import java.beans.PropertyDescriptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; //This will be a wrapper for import java.beans.PropertyDescriptor; public class PropertyInfo { private static final Logger log = LoggerFactory.getLogger(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: '{}' for class {}: {}", pd.getDisplayName(), obj.getClass().getName(), e.getMessage()); log.debug("Exception", e); } return returnValue == null ? defaultValue : returnValue; } public boolean getCanWrite() { return pd.getWriteMethod() != null; } }