package net.techreadiness.ognl;
import java.util.Map;
import net.techreadiness.persistence.AuditedBaseEntityWithExt;
import ognl.ObjectPropertyAccessor;
import ognl.OgnlContext;
import ognl.OgnlException;
import ognl.PropertyAccessor;
public class BaseDOWithExtPropertyAccessor implements PropertyAccessor {
private ObjectPropertyAccessor accessor;
public BaseDOWithExtPropertyAccessor() {
accessor = new ObjectPropertyAccessor();
}
@Override
public Object getProperty(Map context, Object target, Object name) throws OgnlException {
if (accessor.hasGetProperty(context, target, name)) {
return accessor.getProperty(context, target, name);
}
AuditedBaseEntityWithExt entity = (AuditedBaseEntityWithExt) target;
if (name instanceof String) {
return entity.getExtAttributes().get(name);
}
return null;
}
@Override
public void setProperty(Map context, Object target, Object name, Object value) throws OgnlException {
if (accessor.hasSetProperty(context, target, name)) {
accessor.setProperty(context, target, name, value);
} else {
AuditedBaseEntityWithExt entity = (AuditedBaseEntityWithExt) target;
if (name instanceof String) {
entity.getExtAttributes().put((String) name, (String) value);
}
}
}
@Override
public String getSourceAccessor(OgnlContext context, Object target, Object index) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getSourceSetter(OgnlContext context, Object target, Object index) {
// TODO Auto-generated method stub
return null;
}
}