/*
*
*/
package org.smartly.commons.io.serialization.json.serializer;
import org.json.JSONObject;
import java.lang.reflect.Method;
/**
*
* @author angelo.geminiani
*/
public class BeanProcessed {
private Object _bean;
private Object _parent;
private JSONObject _jsonObject;
private BeanData _data;
private Object _beanId;
public Object getBeanId() {
return _beanId;
}
public BeanData getBeanData() {
return _data;
}
public Object getBean() {
return _bean;
}
public void setBean(Object bean) {
_bean = bean;
this.initBeanData(bean);
}
public Object getParent() {
return _parent;
}
public void setParent(Object parent) {
_parent = parent;
}
public JSONObject getJsonObject() {
return _jsonObject;
}
public void setJsonObject(JSONObject jsonObject) {
_jsonObject = jsonObject;
}
// ------------------------------------------------------------------------
// p r i v a t e
// ------------------------------------------------------------------------
private void initBeanData(final Object bean) {
if (null != _bean) {
_data = new BeanData(bean);
_beanId = this.getId(_bean, _data, _bean.hashCode());
}
}
private Object getId(final Object bean, final BeanData data,
final Object defaultValue) {
if (null != data
&& data.getReadableProps().containsKey("id")) {
final Method method = data.getReadableProps().get("id");
try {
return method.invoke(bean, new Object[0]);
} catch (Throwable t) {
}
}
return defaultValue;
}
}