1
|
// $Id$
|
2
|
/**
|
3
|
*
|
4
|
*/
|
5
|
package eu.etaxonomy.cdm.remote.json.processor.bean;
|
6
|
|
7
|
import net.sf.json.CycleSetAcess;
|
8
|
import net.sf.json.JSONObject;
|
9
|
import net.sf.json.JsonConfig;
|
10
|
import net.sf.json.processors.JsonBeanProcessor;
|
11
|
|
12
|
import org.apache.log4j.Logger;
|
13
|
|
14
|
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
|
15
|
|
16
|
/**
|
17
|
* @author a.kohlbecker
|
18
|
*/
|
19
|
public class HibernateProxyBeanProcessor extends CycleSetAcess implements JsonBeanProcessor {
|
20
|
|
21
|
public static final Logger logger = Logger.getLogger(HibernateProxyBeanProcessor.class);
|
22
|
|
23
|
/* (non-Javadoc)
|
24
|
* @see net.sf.json.processors.JsonBeanProcessor#processBean(java.lang.Object, net.sf.json.JsonConfig)
|
25
|
*/
|
26
|
@Override
|
27
|
public JSONObject processBean(Object bean, JsonConfig jsonConfig) {
|
28
|
Object target = HibernateProxyHelper.deproxy(bean, Object.class);
|
29
|
if(logger.isDebugEnabled()){
|
30
|
logger.debug("deproxying object " + target);
|
31
|
}
|
32
|
removeFromCycleSet(target);
|
33
|
return JSONObject.fromObject(target, jsonConfig);
|
34
|
}
|
35
|
}
|