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